MVVMを使用してWindowsPhoneデータベースの例を自分のアプリに適合させています。ここでは、 (メソッドを使用して)を使用EntitySet
して割り当てを可能にするゲッター/セッターの組み合わせでモデルオブジェクトのプロパティをラップすることを提案しています。IEnumerable
Assign
// Example method from a model class 'SomeModelObject'
[Association(Storage = "_todos", OtherKey = "_categoryId", ThisKey = "Id")]
public EntitySet<ToDoItem> ToDos
{
get { return this._todos; }
set { this._todos.Assign(value); }
}
EntitySet
ただし、プロパティを持つオブジェクトをインスタンス化しようとすると、それは許可されません。
SomeModelObject myModelObject = new SomeModelObject() {
Property1 = "foo",
Property2 = true,
// Following raises an error, even though setter should allow assignment
// from an IEnumerable (because of the use of 'Assign' in the setter)
ToDos = new List<ToDoItem>() {
new ToDoItem(),
},
};
エラーは次のとおりです。
Error 1 Cannot implicitly convert type
'System.Collections.Generic.List<SomeApp.ToDoItem>' to
'System.Data.Linq.EntitySet<SomeApp.ToDoItem>'
から参照されるオブジェクトをインスタンス化するにはどうすればよいEntitySet
ですか?