我希望在花费无数个小时配置现有数据库的数据模型之后,有人会为我提供更多见解。我有以下数据库结构实体框架4.3一对一外键关系
User (Table)
UserID (P.K Identity int)
UserName (nvarchar)
UserSetting (Table)
UserSettingsID (P.K Identity int)
UserSettingsUserID (F.K of User.UserID)
在该模型中,我有一个属性UserSetting用户实体和用户属性在usersetting实体。
在用户设置实体类型配置中;
this.HasRequired(t => t.User)
.WithMany(t => t.UserSetting)
.HasForeignKey(d => d.UserSettingsUserID)
.WillCascadeOnDelete(false);
如果我在用户实体中将UserSetting设置为ICollection,以上操作将仅适用(这是我目前唯一的解决方案)。我曾尝试设置外键属性和几乎所有我能在网上找到的东西,但没有运气。这是我第一次使用存储库模式和工作单元编码实体框架。
要在您的架构定义中强制DB中的1对1关系,您需要在UserSetting表中的UserSettingUserID列上有一个唯一约束。如果我没有弄错,EF 5.0中只会支持唯一的约束条件:http://geekswithblogs.net/JoshReuben/archive/2010/09/13/entity-framework-5.0---not-quite-there-yet。 aspx http://blogs.msdn.com/b/efdesign/archive/2011/03/09/unique-constraints-in-the-entity-framework.aspx –
@DannyVarod:EF 5.0中不支持唯一约束:http://blogs.msdn.com/b/adonet/archive/2012/05/15/ef5-release-candidate-available-on-nuget.aspx去年它在路线图上,但没有做到进入EF 5。 – Slauma