在实体框架中定义一对多关系
我试图使用实体框架(.net 4.0)创建一个1:m的关系,并得到以下错误:
App_Code.Model.msl(36,6) : error 3007: Problem in mapping fragments
starting at lines 6, 36:Column(s) [ProductId] are being mapped in
both fragments to different conceptual side properties.
我拥有的是一个产品表和一个功能表。 这个想法是产品有很多特点。 每个产品都有一个ProductId,并且这些Features具有一个ProductId外键。
现在的问题是外键在sql server中不存在,我不希望它。 如果确实如此,那么它全部自动地很好地工作。
在EDMX设计师中,我创建了一个从产品到特征实体的关联,然后将ProductFeature关联的映射细节编辑为基于特征表,我认为这会使其工作。
有任何想法吗? 非常感谢。
这是一个M×N的关系。 为什么? 因为某个功能可以分配给多种类型的产品。
你应该有一个表格ProductFeatures,像这样:
ProductId FeatureId
1 1
1 2
2 1
2 2
找到一个解决方案:从要素实体中删除标量属性'ProductId':
http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/a71901fb-97ec-4072-949a-c0c66a9775b1
但是,如果您在数据库中设置了外键,则在EF提供的自动生成关系中,例如“ParentId”字段作为标量字段存在于子项中。
所以我仍然有点困惑。
- 编辑 - 进一步的帮助:
http://www.hanselman.com/blog/CreatingAnODataAPIForStackOverflowIncludingXMLAndJSONIn30Minutes.aspx
链接地址: http://www.djcxy.com/p/6389.html