Преимущества модели «Только код» в Entity Framework 4? - PullRequest
4 голосов
/ 12 июля 2010

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

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

Ответы [ 3 ]

4 голосов
/ 12 июля 2010

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

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

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

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

1 голос
/ 13 июля 2010

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

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

0 голосов
/ 13 июля 2010

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

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