繁体   English   中英

实体框架-多个导航属性

[英]Entity Framework - Multiple navigation property

我开始使用实体框架,但遇到一个大问题。 我想要实体UserRole之间的多对多关系。

所以我创建了3个表UserRoleUserRoles

D b

接下来,我创建了3个实体:

public class User
{
    public virtual int UserId { get; protected set; }
    public virtual string UserName { get; set; }
    public virtual string Password { get; set; }
    public virtual DateTime CreateDate { get; set; }
    public virtual ICollection<UserRole> Roles { get; set; }
    public virtual ICollection<UserRole> CreatedRoles { get; set; }
}

public class Role
{
    public virtual int RoleId { get; protected set; }
    public virtual string Name { get; set; }
}

public class UserRole
{
    public virtual int UserRoleId { get; protected set; }
    public virtual int UserId { get; set; }
    public virtual User User { get; set; }

    public virtual int RoleId { get; set; }
    public virtual Role Role { get; set; }
    public virtual DateTime CreateDate { get; set; }

    public virtual int CreateUserId { get; set; }
    public virtual User CreateUser { get; set; }
}

我想将映射用户与创建用户分开。 并且在这一步中,实体框架开始引发错误。

接下来,我要从User对象导航到他的映射角色以及他创建的映射。

我可以配置实体框架来执行这些操作吗?

您应该应用InverseProperty属性:

public class User
{
    public virtual int UserId { get; protected set; }
    public virtual string UserName { get; set; }
    public virtual string Password { get; set; }
    public virtual DateTime CreateDate { get; set; }

    [InverseProperty("User")]
    public virtual ICollection<UserRole> Roles { get; set; }

    [InverseProperty("CreateUser")]
    public virtual ICollection<UserRole> CreatedRoles { get; set; }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM