#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.