我有一个Product表,其中包含以下字段:
public class Product {
public int ID {get;set;}
...
}
和一个将产品加入其他“交叉销售”产品(如项目)的表格:
public class CrossSell {
public int ProductID {get;set;}
public int CrossSellID {get;set;}
}
我的意图是,根据任何产品,获得交叉销售产品列表。
实体框架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的第二个List,将第一个名称重命名为“CrossSells”并让所有这些神奇地起作用吗?我应该以不同方式重新制作SQL表,以便EF更好地理解我的意图吗?如果单个产品可以有多个交叉销售商品,这些SQL表会是什么样的?
编辑:
我真正想要的是一种在没有循环引用的情况下在EF中表示CrossSell项目的方法。现在,产品指的是其他产品,而这些产品反过来又指其他产品......
答案 0 :(得分:2)
在模型浏览器中查找实体。找到Products1
属性。点击它。在属性编辑器中重命名它。