1- Лучше всего делать то, что ?! Если вам нужно быстро построить свой проект, я рекомендую вам подход Database-First
. Но у меня есть некоторые ограничения, но быстро. Если вы используете Model-First
, вы можете быстро построить свой проект, купить то же, что и в базе данных - сначала он имеет некоторые ограничения, но если время не является вашей проблемой, вы можете использовать Class-First
(Code-First). Это более гибко, чем другие.
2 - Да, вы можете. Если вы используете n-уровневую архитектуру, вы можете создать свой DAL-слой, создав Class Project
и поместите свой EDMX
или ваши POCO
объекты в Это.
3 - Я считаю, что Code-First лучше других. В зависимости от моего эксперимента, используя объекты POCO, вы можете больше помочь в использовании двигателей баз данных.
Как правило, вы выбираете свой подход ведьмы, который хотите использовать, зависит от условий вашего проекта. Для большого проекта я рекомендую подход Code-First. Но имейте в виду, что во всех подходах EF вы должны позаботиться о своих запросах.
EX: Большая ошибка, которая наблюдается в коде новых программистов:
Код 1:
DataContext.Table1.ToList().Where(x => x.Username == "Ali")
Код 2:
DataContext.Table1.Where(x => x.Username == "Ali").ToList()
Первый код извлекает все записи, а затем берет один из них, но второй код просто извлекает одну запись, а если ваша таблица 1 содержит 10 миллионов записей, произойдет ужасная ошибка :)). Так что во время разработки вашего проекта нужно знать о таких ошибка. Более важно выбрать подход к подходу :)
Удачи