【发布时间】:2012-06-24 10:28:07
【问题描述】:
我希望有人能在花费无数小时配置现有数据库的数据模型后为我提供更多见解。我有以下数据库结构
User (Table)
UserID (P.K Identity int)
UserName (nvarchar)
UserSetting (Table)
UserSettingsID (P.K Identity int)
UserSettingsUserID (F.K of User.UserID)
在模型中,我有一个用户实体的属性 UserSetting 和用户设置实体的用户属性。
在用户设置实体类型配置中;
this.HasRequired(t => t.User)
.WithMany(t => t.UserSetting)
.HasForeignKey(d => d.UserSettingsUserID)
.WillCascadeOnDelete(false);
只有在用户实体中将 UserSetting 设置为 ICollection 时,上述内容才有效(这是我目前唯一的解决方案)。我已经尝试设置外键属性以及我在网上可以找到的几乎所有内容,但没有运气。这是我第一次使用存储库模式和工作单元编写实体框架。
【问题讨论】:
-
要在架构定义中的数据库中强制实施一对一关系,您需要在
UserSetting表中的UserSettingUserID列上设置唯一约束。如果我没记错的话,只有 EF 5.0 才支持唯一约束:geekswithblogs.net/JoshReuben/archive/2010/09/13/…blogs.msdn.com/b/efdesign/archive/2011/03/09/… -
@DannyVarod:EF 5.0 将不支持唯一约束:blogs.msdn.com/b/adonet/archive/2012/05/15/… 去年就在路线图上,但没有进入 EF 5。
标签: entity-framework repository-pattern relationship entity-framework-4.3 one-to-one