繁体   English   中英

实体框架中的1到0..1关系

[英]1 to 0..1 Relationship In Entity Framework

我想创建以下关系。 显然,这是非常痛苦的基本工作,但是由于有了EF,我才陷入了第一个障碍。 在我的数据库中, SubForm的主键Id是引用Application.Id的外键(强制关系)。 当我添加一个新的Application EF抱怨我没有SubForm_Id行,因此我不希望这样做,因为这显然是主键的重复。 我可以在模型中添加一些注释来解决这个问题吗?

这使我想到另外一个问题,如果我想添加一个新的Application有一个新的SubForm在同一时间的数据库-我怎么能拿Application Id (这是在分贝为自动增量INT定义)设置它在SubForm对象上,还是EF可以帮我做这个?

帮助将不胜感激。

EF按照惯例,假设你的Application表中有一个标量属性SubForm_Id当你有型的导航性能SubForm 您需要显式配置共享主键映射。

public class MyContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
         modelBuilder.Entity<Application>()
           .HasOptional(a => a.SubForm)
           .WithRequired(s => s.Application);
    }
 }

您可以如下插入

var app = new Application();
var subForm = new SubForm { Application = app };
db.SubForms.Add(subForm);
db.SaveChanges();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM