Как стать автором
Обновить

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

Спасибо за статью
Пожалуйста, рад стараться!
Скажите плз, CodeFirst уже поборол децкие болезни роста? Например использование GUID в качестве PK? А то раньше с этим вылазил целый ворох проблем.
Да, GUID полностью может использоваться в качестве РК, единственное ограничение, что при работе с SQL Server CE 4.0 не поддерживается использование автогенерации на стороне сервера. То есть вот такой код
public class Tag
        {
            [Key]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public Guid TagID { get; set; }
            public string TagName { get; set; }
        }

не будет корректно работать, надо явно указывать GUID перед записью в БД:
Tag t1 = new Tag {TagName = ".net", TagID = Guid.NewGuid()};
А указать явно значение по-умолчанию, как, например, «newid()», нельзя?
Ещё не поборол — enum'ы.
Нет миграций — только recreate database.
Нельзя менять конвеншены.

С какого перепуга они назвали это релизом, я не понимаю.
Да, отсутствие миграций сильно напрягает. Пожалуй, самая неудобная вещь, приходится руками менять все
А кто сказал, что миграции там должны быть? Это ORM, а не migration-фреймворк. Юзайте Migrator.NET.

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

Можно сказать, что не нуждается. Однако не всех может устроить для Email и Name столбцы типа NVARCHAR(MAX). Думаю, об этом имеет смысл упомянуть, чтобы не создавалось впечатление сказки ;)
Вообще, Conventions это довольно мощная вещь.… Подробнее о них можно почитать здесь

Строго говоря, в текущем релизе нет официальной поддержки своих Conventions — только возможность отключения стандартных.

P.S. Не подумайте, что я противник EF 4.1 — очень даже неплохой шаг вперед. Просто не хочу, чтобы у кого-нибудь были завышенные ожидания.
Добавил замечание насчет маппинга типов. Спасибо!
Я имел в виду немного другое — что без атрибутов или ModelBuilder в реальном приложении не обойтись.

P.S. Для задания длины строки есть атрибут StringLength.
> «Вообще, Conventions это довольно мощная вещь.… Подробнее о них можно почитать здесь»
Conventions — по определению очень мощная вещь. Это именно то, что позволяет в 90% случаев не писать тривиального кода. Именно поэтому такие тулзы как, скажем, FluentNHibernate или AutoMapper так юзабельны.

По теме — CF — хороший шаг вперед, но, честно говоря, EF сам по себе содержит детские проблемы.
Например, до сих пор нет нормального Lazy Loading. Решается только собственной реализацией Dynamic Proxy. Ну и о таких фичах как кэш 2-го уровня, вообще говорить не приходится. Собственно, посмотрим что будет дальше.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории