Создание связей сущностей в неключевых столбцах - PullRequest
0 голосов
/ 27 апреля 2011

У меня есть две таблицы пользователей и школ. У каждого есть первичные ключи и нет внешних ключей. База данных, к которой я должен подключиться, вообще не имеет нормализации, но мне все равно нужны ассоциации. Я отметил некоторые другие вопросы, которые были похожи, но я не мог понять, о чем они спрашивают, так что извините, если это повторение.

Users Table
UserId int NON NULL
School varchar NON NULL

Schools Table
SchoolId int NON NULL
SchoolName varchar NON NULL

Данные выглядят так:

Users Table
UserId    School
1         ABC
2         ABC

Schools Table
SchoolId  SchoolName
1         ABC
2         DEF

Ассоциация, которую я хотел бы создать, приведена ниже, ключом является SchoolName в таблице Schools и School в таблице Users

User *--1 School

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

К сожалению, это невозможно. Если вы хотите сделать это в базе данных, вы пометите SchoolName в Schools таблице как уникальную (поместив уникальное ограничение / индекс) и благодаря этому вы сможете построить отношение один ко многим. EF не поддерживает уникальные ключи, потому что вы не можете определить такую ​​ассоциацию ни в базе данных (она не будет отражена в вашей модели), ни в модели напрямую из-за ограничений ссылок.

При работе с EF хороший дизайн базы данных остается ключевым.

0 голосов
/ 10 мая 2011

Как у кого-то, кто сталкивался с подобной проблемой, Linq to SQL обладает такой способностью, и, похоже, работает нормально.

...