Как я могу получить список связанных 1-n элементов? - PullRequest
0 голосов
/ 21 мая 2018

Это моя основная (Database First) диаграмма на SQL Server:

enter image description here

Когда я Update Model from Database использую Entity Framework (6.x) в моем приложении MVC я ожидаю, что Users получил это свойство:

public virtual ICollection<Role> Roles { get; set; }

Роли с:

public virtual ICollection<User> Users { get; set; }

Но вместо этого я получил:

public virtual ICollection<UsersRoles> UsersRoles { get; set; }
public virtual ICollection<UsersRoles> UsersRoles { get; set; }

Где я не прав?

1 Ответ

0 голосов
/ 21 мая 2018

Ваш дизайн неправильный.

Отношение «многие ко многим» определяется таблицей, которая состоит только из двух идентификаторов рассматриваемых таблиц, которые вместе образуют составной ключ.У вас почти такой дизайн, но у вас есть дополнительный первичный ключ к таблице «отношений», который разрушает все:)

Если вы используете этот код для генерации ваших таблиц, вы получите правильные отношения:

create table users(
    userid int identity(1,1) primary key,
    --other columns
    username varchar(10)
)
create table roles(
    roleid int identity(1,1) primary key,
    rolename varchar(10)
)
create table usersroles(
    userid int foreign key references users(userid),
    roleid int foreign key references roles(roleid),
    primary key (userid, roleid)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...