如何首先在代码中定义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);
}
}
这是个意外!
您就快到了。尝试按如下方式映射它。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TestA>().HasOptional(a => a.TB)
.WithMany(b => b.TA);
}
关于绘制的文章
- EF代码中的关联第一部分:第6部分——多值关联这个系列的其他部分也很好
- 实体框架4.1代码优先(具有一对多关系)代码示例
- 代码优先关系Fluent API