我有一个产品表,其中包含以下字段:
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 项目的方法。现在,产品是指其他产品,而其他产品又是指其他产品,而其他产品又...