And*_*ena 2 .net entity-framework-4
我快到了.我越接近1到0..1的关系.
我的物理架构是:
User:
- Id : int primary Key identity
- Name : varchar(50)
UserDetail:
- Id : int primary Key | foreign key to User.Id
- DisplayName : varchar(200)
Run Code Online (Sandbox Code Playgroud)
当我在实体数据模型设计器中导入此schama时,Visual Studio 2010建议1到0..1的关系.如果我强制执行1..1它接受,但结果看起来不像1..1关系.
我对1..1关系的期望是什么?
我希望它能:
我怎么能做到这一点?
因为真正的1对1的关系意味着你必须有FK它甚至不是在数据库级别上的支持User,以UserDetail在同一时间从FK UserDetail到User.1到1表示没有第二条记录就不能存在一条记录,但是当检查引用约束时,不可能将这些记录插入表中.
一对一实际上总是1到0..1,因为您必须能够插入主要记录而不依赖于主记录,并且一旦主记录被持久化,您就可以插入从属记录.EF与关系数据库的工作方式密切相关.我知道纯粹的1对1工作的唯一情况是表拆分,您将实体映射到同一个表,因此两个实体必须始终存在并插入在一起,因为它们形成单个记录.
如果要始终保存User并UserDetail一起使用,则应使用实体拆分将它们建模为单个实体.