Преимущества модели «Только код» в Entity Framework 4?

Предварительная версия Entity Framework 4.0 Futures (теперь CTP3) имеет парадигму моделирования только кода для сопоставления ваших типов и базы данных. Никаких файлов edmx и дизайнера EDM не требуется.

Я хотел знать, каковы большие преимущества Code Only по сравнению с Model First? Что можно сделать в Code First, чего нельзя сделать в других моделях (сначала Model First и база данных)? Я думаю, может быть, больше контроля, но я все еще не могу изменить файлы CSDL, SSDL, MSL и свой собственный код, чтобы получить нужный мне результат. Модель «Только код» предполагает выполнение всего в коде, что может привести к ошибкам, таким как создание неправильной желаемой модели или отсутствующие определения свойств.


person Tony_Henrich    schedule 12.07.2010    source источник


Ответы (3)


Это действительно вопрос предпочтений. Цитата из блога дизайна EF:

Однако многие разработчики рассматривают свой Код как свою модель.

В идеале эти разработчики просто хотят написать несколько классов предметной области и, даже не касаясь конструктора или фрагмента XML, иметь возможность использовать эти классы с Entity Framework. В основном они хотят написать «Только код».

http://blogs.msdn.com/b/efdesign/archive/2009/06/10/code-only.aspx

person Yakimych    schedule 12.07.2010

Основываясь на своем опыте, я бы выбрал Model-First, потому что он позволяет вам моделировать вашу предметную область настолько сложными способами, что сделать это в Code-First было бы сложно. На самом деле будет несколько сценариев расширенного моделирования, которые вы не сможете реализовать в первой версии кода. Это строго мое мнение, основанное на моем понимании того, насколько сложным может быть моделирование. Но пока команда EF не завершит работу над Code-First, мы ничего не узнаем.

Кроме того, если вы пришли из мира linq в мир sql, вы были бы шокированы, увидев, насколько хорош Entity Model Designer. Он отлично работает и позволяет создавать сложные модели с минимальными усилиями со стороны разработчика.

person zeeshanhirani    schedule 12.07.2010

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

person aubreyrhodes    schedule 12.07.2010