Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将集合添加到实体a表中,并在C#中使用复合主键?_C#_Sql Server_Entity Framework - Fatal编程技术网

如何将集合添加到实体a表中,并在C#中使用复合主键?

如何将集合添加到实体a表中,并在C#中使用复合主键?,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,我正在使用SQL Server为一个市场编写一个应用程序。我使用了一些表格,其中两个是Purchase和Products,它们之间存在多对多关系 我创建了另一个表PurchaseProduct来连接它们PurchaseProduct有两列ProductId和PurchaseId,这两列与其他两个表有关系;此连接表具有包含两列的复合主键 然后,我尝试将这些表添加到Winforms应用程序中的实体数据模型中。它添加了采购和产品,但没有添加采购产品 我想通过使用特定的purchaseId来编码和显示购

我正在使用SQL Server为一个市场编写一个应用程序。我使用了一些表格,其中两个是
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; }
}