C# 如何首先在代码中定义0..1对多关系
最近我在读ado.net团队博客的文章,当我发现如何创建一对一关系、一对多关系和多对多关系时。但是,有没有办法创建0..1对多关系C# 如何首先在代码中定义0..1对多关系,c#,ef-code-first,entity-relationship,C#,Ef Code First,Entity Relationship,最近我在读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; } } cla
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);
}
}
类测试
{
公共int id{get;set;}
公共字符串名称{get;set;}
[时间戳]
公共字节[]戳{get;set;}
公共TestB TB{get;set;}
}
类TestB
{
公共int id{get;set;}
公共字符串名称{get;set;}
[时间戳]
公共字节[]戳{get;set;}
公共ICollection TA{get;set;}
}
类myContext:DbContext
{
公共DbSet播放器{get;set;}
公共DbSet团队{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().has可选(a=>a);
}
}
太迟了 你就快到了。尝试如下映射它
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<TestA>().HasOptional(a => a.TB)
.WithMany(b => b.TA);
}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity().has可选(a=>a.TB)
.有许多(b=>b.TA);
}
关于地图的文章
- 这个系列的其他部分也很好