3
問:如何保留SubSonic對象在Windows Communication Foundation服務中來回傳送時的「骯髒」?帶WCF的往返SubSonic DAL對象
機智:
我有一個WCF服務調用返回亞音速的集合(2.2)的對象,像這樣:
// WCF server side
public MyObjectCollection GetAllMyObjects()
{
// Retrieve a MyObjectCollection (SubSonic-generated class) from the DB
return DB.Select().From<MyObject>.ExecuteAsCollection<MyObjectCollection>();
}
,另一種是讓客戶節省他們:
// WCF server side
public void SaveAllMyObjects(MyObjectCollection objs)
{
objs.SaveAll();
}
在WCF客戶端,我檢索這個集合(通過生成的WCF代理),我修改了它的一些成員,然後我保存它:
// WCF client side
MyObject[] allObjects = myWcfClient.GetAllMyObjects();
allObjects[3].SomeProperty = "Some other value";
myWcfClient.SaveAllMyObjects(allObjects);
會發生什麼,但是,是亞音速「objs.SaveAll()」調用不會保存任何內容,因爲它沒有「意識到」是OBJ文件[3]已被修改,即沒有人翻轉「髒「的位。
這是我正在實施的反模式,還是這是一種明智的做事方式?如果是這樣,我如何說服SubSonic在穿過WCF電線時將我的物體標記爲髒?