Выгодно ли использовать многоколонные (составные) первичные ключи при использовании Linq to SQL? - PullRequest
6 голосов
/ 15 марта 2009

Является ли выгодным использование многоколоночных (составных) первичных ключей для таблицы отношений многие ко многим при использовании Linq to SQL?

Или я должен просто добавить идентификационный столбец в качестве некластеризованного первичного ключа и соответствующим образом проиндексировать столбцы FK?

Ответы [ 2 ]

5 голосов
/ 15 марта 2009

Не проблема LINQ. Если они нужны для вашей схемы, используйте их. Если нет, не надо. В любом случае, LINQ отлично справится с вашей схемой.

Одна область, которую LINQ to SQL плохо обрабатывает, - это таблица сопоставлений столбцов и ключей, которые используются для связи многих со многими, но я бы не сказал, что это странно относится к категории, к которой относится ваш вопрос. Вы по-прежнему можете выполнять операции CRUD над таблицей сопоставления в LINQ, но LINQ не может выполнить отношение, представленное таблицей сопоставления «многие ко многим». (LINQ отлично работает с таблицами один к одному и один ко многим.)

Я не могу говорить ни о какой проблеме с Entity Framework, но, опять же, я был бы очень удивлен, если бы у EF были какие-либо проблемы с таблицами с несколькими столбцами / несколькими ключами.

0 голосов
/ 15 марта 2009

Если в вашем домене имеет смысл иметь многоколонный составной ключ, используйте его. В противном случае используйте обычный столбец идентификаторов в качестве суррогатного первичного ключа.

РЕДАКТИРОВАТЬ: это был общий совет, не принимая во внимание технические аспекты реализации с использованием LINQtoSQL. Они могут представлять интерес:

Как: обрабатывать составные ключи в запросах (LINQ to SQL)

LINQ To SQL Samples

Linq to SQL DTO и составные объекты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...