你会如何与MongoDB进行多对多的关联?
例如; 假设您有一个Users表和一个Roles表.用户有很多角色,角色有很多用户.在SQL中,您将创建一个UserRoles表.
Users:
Id
Name
Roles:
Id
Name
UserRoles:
UserId
RoleId
Run Code Online (Sandbox Code Playgroud)
MongoDB中如何处理相同类型的关系?
我有2个表:用户和角色,我有一个表将这些表连接在一起.连接表中唯一的东西是链接2个表的ID.
我该怎么称呼这张桌子?我从来没有真正看到过这个很好的命名惯例.
我以前见过的约定:
例如:
Users:
Id
Name
Roles:
Id
Name
TableThatJoinsTheTwo:
Id
UserId
RoleId
Run Code Online (Sandbox Code Playgroud) 我有一个页面,其中包含一些用于数据输入的文本框.文本框的绑定设置为TwoWay
.如果文本框失去焦点,则视图模型中的数据仅会更新.如果单击某个按钮(例如"保存"),并且文本框仍具有焦点,则在保存事件的视图模型中不会更改文本框中的更改.
有没有办法让绑定在失去焦点之前保存文本框的值?或者我是否需要在保存事件中执行某些操作?
我不知道是否为时已晚或是什么,但我不知道如何做到这一点......
我期待做什么,以及对象浏览器所说的内容是:
var oc = new ObservableCollection<T>( new List<T>() );
Run Code Online (Sandbox Code Playgroud)
但是ObservableCollection<T>
有一个无参数的构造函数.对象浏览器说有2个重载,其中List和IEnuerable应该能够传入.
我的设置有问题吗?构造函数不在手机版本上吗?(那会很奇怪)
如果这确实不存在,那么现在使用WP7的标准方法是什么?
我用过这个如何使用流畅的NHibernate将枚举映射为int值?在过去映射,但我最近升级到NHibernate 3,这似乎不再起作用了.我在我的EnumConvention课程中放了断点,但它们没有被击中.命中数据库的查询将枚举作为字符串,这是默认配置.
这如何与NHibernate 3一起使用?
更新
以下是生成的映射文件的一部分:
<property name="ComponentType" type="FluentNHibernate.Mapping.GenericEnumMapper`1[[...ComponentType, ..., Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], FluentNHibernate, Version=1.1.0.0, Culture=neutral, PublicKeyToken=8aa435e3cb308880">
<column name="ComponentTypeId" />
</property>
Run Code Online (Sandbox Code Playgroud)
如果为枚举指定了GenericEnumMapper
何时使用它似乎是正确的IUserTypeConvention
.
这是我的惯例:
public class EnumConvention : IUserTypeConvention
{
public void Accept( IAcceptanceCriteria<IPropertyInspector> criteria )
{
criteria.Expect( e => e.Property.PropertyType.IsEnum );
}
public void Apply( IPropertyInstance instance )
{
instance.CustomType( instance.Property.PropertyType );
}
}
Run Code Online (Sandbox Code Playgroud) 当AutoMapper遇到已经映射的对象时,它似乎再次使用该对象,而不是尝试重新映射它.我相信它是基于这样做的.Equals()
.
我有一棵正在映射的树.所以,一个具有一些属性的节点和子节点.不止一个节点具有相同的值.Equals()
,因为它基于Id属性.节点的子节点是不同的,我需要重新映射,但它使用缓存的映射值.
有没有办法关闭缓存的映射?我能想到的只是实现一个新的转换器,但这完全违背了使用AutoMapper的目的.
这是一个如何重现的例子.
void Main()
{
var source = new List<Tag>
{
new Tag
{
Id = 1,
Name = "Tag 1",
ChildTags = new List<Tag>
{
new Tag
{
Id = 2,
Name = "Tag 2",
ChildTags = new List<Tag>
{
new Tag {Id = 3, Name = "Tag 3"},
new Tag {Id = 4, Name = "Tag 4"}
}
}
}
},
new Tag { Id = 1, Name = "Tag 1" }, …
Run Code Online (Sandbox Code Playgroud) 我有一个业务层,有一些业务对象/ POCO /实体/任何.我还有一些数据访问存储库.到目前为止,我一直在从UI层访问存储库.我实际上需要一些不是直接CRUD的类,因此我将创建一些将执行逻辑的业务逻辑类,并且CRUD和存储库将不会被访问用户界面(可能从一开始就应该完成).
我该怎么称呼这些课程?我唯一能想到的是服务类,但我在这个应用程序中有实际的WCF服务,所以这会让它变得混乱.WCF服务也将使用这些类,因此让服务使用服务类似乎很奇怪而且令人困惑.
我已经读过,使用后退勾号应该允许使用保留字.我正在使用SQL Server和Fluent NHibernate,并且列名为"File".如果我用它来映射
"`File"
Run Code Online (Sandbox Code Playgroud)
它尝试使用
[Fil]
Run Code Online (Sandbox Code Playgroud)
所以它正确添加括号,但从末尾删除"e".如果我将其映射为
"`Filee"
Run Code Online (Sandbox Code Playgroud)
它用
[File]
Run Code Online (Sandbox Code Playgroud)
正确.
我做错了什么或者这是NHibernate或Fluent Nhibernate中的错误?
我正在使用Web部署项目,并希望使用emlah/errorMail部分替换部分.我不想在调试构建模式下发送电子邮件.
我创建了自定义部分并将其放在errorMail.config中.在替换下的Web部署项目的属性中,我有elmah/errorMail = errorMail.config.
我得到的错误是为elmah/errorMail创建配置节处理程序时出错:无法加载文件或程序集'Elmah'或其依赖项之一.该系统找不到指定的文件.
我猜这种情况正在发生,因为Elmah不在GAC中,或者它不是我的项目之一.Elmah.dll文件确实复制到output\bin文件夹就好了.
有没有办法让部分替换与第三方dll一起使用?
[编辑]
我发现,如果我将有问题的dll放入Web部署项目的项目文件夹中,它将正常工作.这不是最佳的.
所以现在我的问题是,如何在不必将dll放入GAC或将dll复制到Web部署项目文件夹中的情况下使用它?
我偶尔会遇到一些导致我运行的Visual Studio和ReSharper问题
devenv.exe /ResetSettings
Run Code Online (Sandbox Code Playgroud)
执行此操作后,"数据"下的菜单项都是重复的,每个部分都是重复的.所以它现在看起来像这样:
Show Data Sources Add New Data Source... ------------------------- Schema Compare Schema Compare Data Compare Data Compare ------------------------- Schema Compare Schema Compare Data Compare Data Compare ------------------------- Refactor Refactor ------------------------- Refactor Refactor ------------------------- T-SQL Editor T-SQL Editor ------------------------- T-SQL Editor T-SQL Editor ------------------------- Static Code Analysis ------------------------- Schema View
我安装了MS Visual Studio Team System 2008数据库版GDR 2,我认为这就是造成这个问题的原因.
有没有办法删除重复的项目,或者更好的是,阻止这种情况发生?
c# ×3
.net ×2
nhibernate ×2
asp.net ×1
associations ×1
automapper ×1
collections ×1
data-binding ×1
elmah ×1
many-to-many ×1
mongodb ×1
silverlight ×1
sql ×1
sql-server ×1
xaml ×1