gpt4 book ai didi

entity-framework-4.1 - Entity Framework - 使用代码优先的复杂模型

转载 作者:行者123 更新时间:2023-12-04 05:56:52 25 4
gpt4 key购买 nike

美好的一天,伙计们

我有一个非常具体的数据模型,我试图在 POCO 类中创建它,我尝试了很多不同的方法并访问了很多网站,但似乎没有一个涵盖我的具体示例。

所以我要把它扔出去,希望有人能帮助我。

我有产品,产品有成分。但在我们的业务中,这些产品可能由不同的供应商提供,每个供应商的成分略有不同。

所以我有我的基类:

public class Product
{
public int ProductID { get; set; }
public string ProductNumber { get; set; }
public string Description { get; set; }
public virtual ICollection<Supplier> Suppliers { get; set; }
}

public class Vendor
{
public int VendorID { get; set; }
public string Name { get; set; }
public virtual ICollection<Supplier> Suppliers { get; set; }
}

public class Ingredient
{
public int IngredientID { get; set; }
public string Name { get; set; }
}

public class Supplier
{
public int SupplierID { get; set; }

public virtual ICollection<Product> Products { get; set; }
public virtual ICollection<Vendor> Vendors { get; set; }
}

正如你所看到的,我已经意识到我的模型需要一个连接实体,因为我的成分来自产品的特定供应商,我需要一个名为供应商的连接实体(我认为)。

这就是我陷入困境的地方...我的产品可以由一个或多个供应商提供。每个供应商,每个产品,将有该产品的成分列表

我什至无法通过是否需要加入实体。

如果我可以像这样(或类似的东西)导航数据结构,那将是一件很棒的事情:
articles[1].Vendors[3].Ingredients;

再说一次,我对 Entity Framework 的了解还不够,不知道这是否可行。

我现在做的方式感觉……不对。做我想做的事情的正确方法是什么?我是否需要连接表,或者我可以以某种方式导航产品供应商的成分,也许使用模型构建器来制作产品->供应商->成分链接?

任何帮助将不胜感激!

编辑:
我也认为我对 Entity Framework 的关系思想了解不够。

所以一个产品可以有多个供应商,这是一种一对多的关系。但是一个供应商可以有很多产品。那么这实际上是多对多吗?

我绝对可以在 SQL Express 服务器上模拟我想要做的事情,但我真的很想使用 Entity Framework 。我只需要更好地了解我的建模要求。

最佳答案

不是EF的问题。这是常见的实体关系任务。您必须简单地改进您的模型。例如,您可以除 Product分为两个实体:ProductDefinition , ProductInstance

public class ProductDefinition
{
public int ProductID { get; set; }
public string ProductNumber { get; set; }
public string Description { get; set; }
public virtual ICollection<ProductInstance> Instances { get; set; }
}


public class ProductInstance
{
public int ProductInstanceID { get; set; }
public virtual Supplier Supplier { get; set; }
public virtual ProductDefinition Definition { get; set; }
public vritual ICollection<Ingredient> Ingredients { get; set; }
}

在您的系统中,您将使用 ProductDefinition代替原来的 Product .这个定义就像一组相同的产品,它指向不同供应商提供的具有不同成分的产品的所有可能制造。

我不知道你的背景,但将不同成分的产品视为“相同”似乎很奇怪。

关于entity-framework-4.1 - Entity Framework - 使用代码优先的复杂模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9408512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com