使用共享对象表

时间:2016-03-14 16:01:09

标签: c# entity-framework linq

我有项目,任务和工作对象。我有一个可以链接到其中任何一个的对象标签。这些对象中的任何一个都可以有多个与之关联的标记。标签对象具有TagId,TypeId,RelationId。

RelationId指向链接对象,类型指示要链接的类型。如何在每个对象的导航属性中执行此操作,以便我不会拉错标记对象。我知道我可以使用Linq来做到这一点 Where(ProjectId == RelationId && TypeId == 1),但这仅在我编写查询并且不允许导航属性时才有效。

1 个答案:

答案 0 :(得分:0)

您的实体结构应该是这样的:

class Projects
{
    public int ProjectId { get; set; }
    public virtual ICollection<Tag> Tags { get; set; }
}

class Tasks
{
    public int TaskId { get; set; }
    public virtual ICollection<Tag> Tags { get; set; }
}

class Tag
{
    public int TagId { get; set; }
    public int TypeId { get; set; }
    public int RelationId { get; set; }
    public virtual Projects Project { get; set; }
    public virtual Tasks Task { get; set; }
}

这在实体框架https://msdn.microsoft.com/en-gb/data/jj713564.aspx

中称为独立关联