实体的一对一关系

时间:2013-04-15 12:41:24

标签: c# entity-framework entity-framework-5

所以我有3节课。例如:

class Project {
    int id
}

class User {
    int id
}

class UserProjectLink {
    int projectId
    int userId
}

我有这种方法,以避免数据库中的NULL值。 然而,实体框架会在projectId表上设置User,从而产生NULL值。 (请注意,上面的类不是实际的类。)

我该如何解决这个问题?用户只有1个项目,项目只有1个用户。该项目可能还没有用户,在这种情况下,UserProjectLink表中没有一行会告诉我那里还没有用户。

任何想法都可能有用。

2 个答案:

答案 0 :(得分:0)

您所描述的是项目是与用户相关的弱实体的设置。这意味着,为了使项目存在,必须具有用户作为其所有者,并且任何其他用户都不能引用它(即它具有单个所有者)。

因此,您不需要UserProjectLink表。

class User {
    int id
}

class UserProject { // or just "Project"
    int projectId
    int userId
}

答案 1 :(得分:0)

class User {
    [Key, ForeginKey("Project")]
    int id
    public Virtual Project Project{get; set;}
}
class Project {
    int id
    public virtual User User {get; set;}
}