我有一个存储商店库存的表格,如下所示
InventoryId int
ParentId int
ShortDesc int
...
[other product data]
...
表中存在TShirt,其ParentId为-1。任何大小和颜色的变化都将与ParentID字段中的原始父类InventoryID存在于同一个表中。
EG
InventoryID |ParentID |ShortDesc
----------------------------------------------------
111 -1 Skull TShirt
112 111 Skull TShirt Black Small
113 111 Skull TShirt Black Medium
114 111 Skull TShirt Black Large
115 111 Skull TShirt White Small
我是否可以指定某种外键或关联,当我将此DB与实体框架一起使用时,我可以在此实体上具有导航属性,该属性将列出所有库存实体的子库存? / p>
答案 0 :(得分:4)
是的,这很好用。对于一个真实的示例,使用默认设置创建Northwind数据库的模型,并查看员工主管关系。实体框架不会自动获取Supervisor属性名称,但关联本身可以正常工作,您可以手动重命名该属性。
关于您的具体示例,我怀疑-1
。如果这是真实库存记录的真正主键,那很好。如果它是一个表示没有记录的魔术值,则使用NULL或使其成为真实记录。为了使实体框架能够识别这种关系,您需要创建一个真正的数据库外键,因此所有值必须实际引用记录。