У меня есть полное разделение моих объектов Entity Framework и моих объектов POCO, я просто перевожу их туда-сюда ...
т.е:
// poco
public class Author
{
public Guid Id { get; set; }
public string UserName { get; set; }
}
и затем у меня есть объект EF "Авторы" с теми же свойствами ..
Итак, у меня есть бизнес-объект
var author = new Author { UserName="foo", Id="Guid thats in the db" };
и я хочу сохранить этот объект, поэтому я делаю следующее:
var dbAuthor = new dbAuthor { Id=author.Id, UserName=author.UserName };
entities.Attach(dbAuthor);
entities.SaveChanges();
но это дает мне следующую ошибку:
Объект с нулевым значением EntityKey
не может быть прикреплен к объекту
контекст.
EDIT:
Похоже, я должен использовать entity.AttachTo ("Авторы", dbAuthor); прикрепить без EntityKey, но тогда у меня есть жестко закодированные магические строки, которые прервутся, если я вообще изменю имена наборов сущностей, и у меня не будет никакой проверки времени компиляции ... Есть ли способ, которым я могу присоединиться, который сохраняет проверку времени компиляции
Я надеюсь, что смогу сделать это, так как жестко закодированные строки, убивающие валидацию времени компиляции, будут отстойными =)