如何将集合添加到实体a表中,并在C#中使用复合主键?
我正在使用SQL Server为一个市场编写一个应用程序。我使用了一些表格,其中两个是如何将集合添加到实体a表中,并在C#中使用复合主键?,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我正在使用SQL Server为一个市场编写一个应用程序。我使用了一些表格,其中两个是Purchase和Products,它们之间存在多对多关系 我创建了另一个表PurchaseProduct来连接它们PurchaseProduct有两列ProductId和PurchaseId,这两列与其他两个表有关系;此连接表具有包含两列的复合主键 然后,我尝试将这些表添加到Winforms应用程序中的实体数据模型中。它添加了采购和产品,但没有添加采购产品 我想通过使用特定的purchaseId来编码和显示购
Purchase
和Products
,它们之间存在多对多关系
我创建了另一个表PurchaseProduct
来连接它们PurchaseProduct
有两列ProductId
和PurchaseId
,这两列与其他两个表有关系;此连接表具有包含两列的复合主键
然后,我尝试将这些表添加到Winforms应用程序中的实体数据模型中。它添加了采购
和产品
,但没有添加采购产品
我想通过使用特定的purchaseId
来编码和显示购买的产品,但我无法访问缺少的表。我已经添加了那个表,但模型中没有
顺便说一句,我是先用Db,而不是先用代码。这就是EF的工作方式——这是一件好事 基本上,对于另一个实体,产品和采购的模型类都应该具有类型为
ICollection
的属性-产品类具有其所有采购的属性,反之亦然
因此,如果您想要给定购买的产品,请查找该购买,然后查看该类的products
属性,它应该包含该购买的所有产品
EF“隐藏”了关系“连接表”,因为它实际上只是关系数据库中的一个助手(或一些人可能称之为“乱码”),使多对多关系成为可能。这就是EF的工作方式-这是一件好事 基本上,对于另一个实体,产品和采购的模型类都应该具有类型为
ICollection
的属性-产品类具有其所有采购的属性,反之亦然
因此,如果您想要给定购买的产品,请查找该购买,然后查看该类的products
属性,它应该包含该购买的所有产品
EF“隐藏”了关系“联接表”,因为它实际上只是关系数据库中的一个助手(或一些人可能称之为“乱码”),使多对多关系成为可能。试试这个
public class PurchaseProduct
{
[Key, Column(Order = 0)]
public string ProductsId { get; set; }
[Key, Column(Order = 1)]
public int PurchaseId { get; set; }
}
试试这个
public class PurchaseProduct
{
[Key, Column(Order = 0)]
public string ProductsId { get; set; }
[Key, Column(Order = 1)]
public int PurchaseId { get; set; }
}