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();
しかし、これは私に次のエラーを与えます:
null EntityKey 値を持つオブジェクトは、オブジェクト コンテキストにアタッチできません。
編集: entities.AttachTo("Authors", dbAuthor); を使用する必要があるようです。EntityKeyなしでアタッチするには、しかし、ハードコーディングされたマジックストリングがあり、エンティティセット名をまったく変更すると壊れてしまい、コンパイル時のチェックがありません...コンパイル時のチェックを維持するアタッチできる方法はありますか?
ハードコーディングされた文字列がコンパイル時の検証を無効にするので、これができることを願っています=)