わかりましたので、私はEFとLINQの両方が初めてです。 INSERTおよびDELETEの方法を考え出しましたが、何らかの理由でUPDATEが理解しにくいようです。
これが私のコードのサンプルです:
_EntityDB dataBase = new EntityDB();
Customer c = new Customer
{
Name = "Test",
Gender = "Male
};
dataBase.Customers.AddObject(c);
dataBase.SaveChanges();
_
上記は問題なくレコードを作成して追加します。
_Customer c = (from x in dataBase.Customers
where x.Name == "Test"
selext x).First();
dataBase.Customers.DeleteObject(c);
dataBase.SaveChanges();
_
上記は、指定されたレコードを効果的に削除します。
今、どのように更新しますか?エンティティコレクションに「UpdateObject()
」メソッドが見つからないようです。
返されたエンティティの1つを変更するだけです:
Customer c = (from x in dataBase.Customers
where x.Name == "Test"
select x).First();
c.Name = "New Name";
dataBase.SaveChanges();
更新できるのはエンティティのみです(EntityObjectを拡張するものであり、select new CustomObject{Name = x.Name}
//更新用
(from x in dataBase.Customers
where x.Name == "Test"
select x).ToList().ForEach(xx => xx.Name="New Name");
//削除用
dataBase.Customers.RemoveAll(x=>x.Name=="Name");
どちらもコレクションへの変更を追跡し、DBを更新するSaveChanges()メソッドを呼び出すだけです。