使用代码优先与现有数据库的关系

发布于 2024-12-07 14:31:00 字数 476 浏览 2 评论 0原文

定义两种类型之间的关系时在两种类型上都包含导航属性很重要,例如以下示例:

    public class Product
    {
        public int ProductId { get; set; }
        public string Name { get; set; }
        public Category Category { get; set; }
    }

    public class Category
    {
        public int CategoryId { get; set; }
        public string Name { get; set; }
        public ICollection<Product> Products { get; set; }
    }

我可以在 Category 中不包含导航属性吗?

When defining a relationship between two types is it important to include a navigation property on both types, such as in the following example:

    public class Product
    {
        public int ProductId { get; set; }
        public string Name { get; set; }
        public Category Category { get; set; }
    }

    public class Category
    {
        public int CategoryId { get; set; }
        public string Name { get; set; }
        public ICollection<Product> Products { get; set; }
    }

Can I do without including the navigation property in Category ?

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

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

发布评论

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

评论(1

岁月染过的梦 2024-12-14 14:31:00

如果您只想通过代码优先约定来推断它,那么是的,您需要在两侧都需要。我还将集合设置为“虚拟”以支持延迟加载。

您可以在构建模型时使用流畅的配置进行设置。会是这样的

modelBuilder.Entity<Product>()
    .HasMany(x => x.Category) 

If you just want it infered by code first convention then yes you need both on either side. I'd also make the collection "virtual" to support lazy loading.

You can set it up using the fluent configuration when the model is built. It would be something like this

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