2016-03-05 3 views
1

Я начал работать с Entity Framework, и у меня есть одна большая проблема. Я хочу, чтобы отношение между многими объектами находилось между объектами User и Role.Entity Framework - свойство множественной навигации

Так что я создал 3 таблицы User, Role, UserRoles

db

Далее я создал 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; } 
} 

Я хочу, чтобы отделить отображенный пользователя от созданного пользователя. И на этом этапе Entity Framework начинает бросать ошибки.

Далее я хочу перейти от User к его сопоставленным ролям и к его созданным сопоставлениям.

Могу ли я настроить Entity Framework для выполнения этих задач?

+0

Я думаю, что это хорошее отношение в БД, так что я хочу создать хорошие Entities в .NET –

ответ

1

Вы должны применить атрибут 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; } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^