У меня есть полное разделение объектов 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, но тогда у меня есть жестко закодированные магические строки, которые будут ломаться, если я вообще изменю имена объектов сущности, и я не буду проверять время компиляции... Есть ли способ, который я могу подключить, который сохраняет проверку времени компиляции
Я надеюсь, что смогу это сделать, поскольку жестко закодированные строки, отменяющие проверку времени компиляции, будут suck =)