【发布时间】:2015-05-06 05:25:30
【问题描述】:
所以,我正在编写一个电子商务应用程序,并尝试在 Product 和 Size 类之间创建多对多关系。实体看起来像这样:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
public class Size
{
public int Id { get; set; }
public string Name { get; set; }
}
public class ProductSize
{
public int Id { get; set; }
public int ProductId { get; set; }
public int SizeId { get; set; }
public string Amount { get; set; }
public virtual Size Size { get; set; }
public virtual Product Product { get; set; }
}
通常我不会显式创建这个ProductSize 表,因为EF 会为我创建它。但是,我需要 Amount 列坐在那里。现在,为了获取有关产品尺寸和数量的信息,我必须创建一个非常明确的查询(2 个连接)。如果我没有手动创建关系类,而只是给Product 类一个虚拟的ICollection 或Size,那么获取完整信息只是一件简单的事情。因此,如果我选择了Product 实例,那么所有尺寸都将加载到它的virtual ICollection<Size> 中。
问题是 - 我可以使用上面给出的实体结构实现相同程度的简单性吗?而不是写一个 2 连接查询,我明确提到我想要的每一列,然后将它打包成一些 ViewModel 我想使用更简单的语法来获取 Product 实例及其相关数据(数据也是如此)它位于中间表中)。
【问题讨论】:
-
你不能在
Product和Size类上都添加virtual ICollection<ProductSize>吗?
标签: c# entity-framework