使用与实体框架中的单个表相关的多个表映射关系

时间:2016-10-27 14:25:54

标签: entity-framework database-design

我有一个表,其中包含各种对象/实体的用户权限,如下所示:

object_type //an enum referring the the type of object that this record applies to
object_id //the id of the object
user_id
can_edit
etc.

这与我项目中其他几个没有任何共同点的表有关(照片就是一个例子)。要获得对象的权限,我希望能够执行以下操作:

//get the first photo along with all of the user permissions related to it
context.Set<Photos>()
     .Include(p=>p.UserPermissions)
     .FirstOrDefault(p=>p.Id == 1)  

如果需要,我可以重组数据库,所以我想在这里你认为最好的解决方案是。

1 个答案:

答案 0 :(得分:2)

我会建议他们都有共同点。它们都是可以控制权限的资源。在这种情况下,“资源”是“照片”等的概括。或者,以对象类的形式表示,照片是资源的子类。

在这种情况下,我建议你的问题可能已被回答here。这是Bill Karwin的回答,它描述了几种设计继承类型情况的方法。它获得了很多选票。