如何在代码优先中定义 0..1 到多个关系

发布于 2024-12-27 22:05:41 字数 794 浏览 0 评论 0原文

这些天我正在阅读 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);
    }
}

提前谢谢!

I'm reading ado.net team blog's articles these days, when I find how to create one to one relationship, one to many relationship and many to many relationship. But, is there a way to create 0..1 to many relationship?

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);
    }
}

Thx inadvance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情绪操控生活 2025-01-03 22:05:41

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

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

有关映射的文章

You are almost there. Try mapping it as follows.

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

Articles on mapping

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文