如何首先在代码中定义0.1对多的关系

本文关键字:关系 定义 何首先 代码 | 更新日期: 2023-09-27 18:20:40

这些天我在读ado.net团队博客的文章,当我发现如何创建一对一关系、一对多关系和多对多关系时。但是,有没有一种方法可以创建0..1对多的关系?

class TestA
{
    public int id { get; set; }
    public string name { get; set; }
    [Timestamp]
    public byte[] stamp { get; set; }       
    public TestB TB { get; set; }
}
class TestB
{
    public int id { get; set; }
    public string name { get; set; }
    [Timestamp]
    public byte[] stamp { get; set; }
    public ICollection<TestA> TA { get; set; }
}
class myContext : DbContext
{
    public DbSet<TestA> players { get; set; }
    public DbSet<TestB> teams { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<TestB>().HasOptional<TestA>(a => a);
    }
}

这是个意外!

如何首先在代码中定义0.1对多的关系

您就快到了。尝试按如下方式映射它。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<TestA>().HasOptional(a => a.TB)
       .WithMany(b => b.TA);
}

关于绘制的文章

  • EF代码中的关联第一部分:第6部分——多值关联这个系列的其他部分也很好
  • 实体框架4.1代码优先(具有一对多关系)代码示例
  • 代码优先关系Fluent API