0

我有一个产品表,其中包含以下字段:

public class Product {
    public int ID {get;set;}
    ...
}

以及将产品连接到其他“交叉销售”产品(如项目)的表:

public class CrossSell {
    public int ProductID {get;set;}
    public int CrossSellID {get;set;}
}

我的意图是,给定任何产品,获取交叉销售产品列表。

Entity Framework 4(EF 第二版)采用这些表并创建 Product 和 Product1 关系,其中连接表的行称为 CrossSell。

我想要的是:

public class Product {
    public int ID {get;set;}
    ...
    public IList<Product> CrossSells {get;set;}
}

EF 创建了这个:

public class Product {
    public int ID {get;set;}
    ...
    public IList<Product> Products {get;set;}
    public IList<Product> Products1 {get;set;}
}

我可以简单地删除名为 Products1 的第二个列表,将第一个列表重命名为“CrossSells”,然后让这一切神奇地起作用吗?我是否应该以不同的方式重新制作 SQL 表,以便 EF 更好地理解我的意图?如果一个产品可以有多个交叉销售项目,这些 SQL 表会是什么样子?

编辑:

我真正想要的是一种在没有循环引用的情况下在 EF 中表示 CrossSell 项目的方法。现在,产品是指其他产品,而其他产品又是指其他产品,而其他产品又...

4

1 回答 1

2

在模型浏览器中找到实体。找到Products1房产。点击它。在属性编辑器中重命名它。

于 2010-07-20T13:16:09.707 回答