Нужно ли мне определять взаимосвязь в базе данных SQL Server, если я использую EF и Linq

#sql-server #linq #entity-framework-4.1 #entity-relationship

#sql-server #linq #entity-framework-4.1 #сущность-взаимосвязь

Вопрос:

Я работаю над asp.net проект mvc и использование Linq для всех моих операций, связанных с данными. В таких случаях нужно ли мне определять взаимосвязь в базе данных SQL Server??

Я использую Entity Framework и Linq, поэтому я думаю, что не имеет значения, создаю ли я диаграмму E-R (т. е. определяющую взаимосвязь) или нет.

Комментарии:

1. Вы спрашиваете, нужны ли вам внешние ключи в базе данных, чтобы иметь отношения в entity model?

2. Вам необязательно нужна ER-диаграмма, но вам совершенно определенно нужны внешние ключи для определения ваших отношений в базе данных!!

3. @marc_s , не обязательно диаграмму ER, но внешние ограничения. Я имею в виду, если я сначала использую код EF с существующей базой данных. Есть ли необходимость определять взаимосвязь в базе данных. Например, в code-first мы создаем базу данных на лету, и в этой базе данных не определены ограничения foriegn

4. @PankajUpadhyay: Да !!

Ответ №1:

Под «определить взаимосвязь», я полагаю, вы имеете в виду «Ограничения внешнего ключа». Всегда желательно определять ограничения, чтобы поддерживать целостность данных. Вам также следует учитывать, что база данных для вашего проекта, вероятно, может использоваться другими приложениями в будущем, которые могут быть основаны на других технологиях, отличных от EF.

Комментарии:

1. Мне нравится ваш ответ, поскольку он углубленный. Но вы согласны с тем, что с EF нет необходимости явно определять внешние ограничения в таблицах??

Ответ №2:

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

Смотрите Как вручную добавить связь в Entity Framework