迄今爲止,我需要處理RIA服務的所有內容都非常簡單,可以使用基於域模型生成的代碼完成。但是,我現在需要在服務器端有一個自定義方法,它執行一些邏輯或調用數據庫中的存儲過程。我可以寫一個自定義的服務器端方法從表中篩選的數據,我需要如下:更新使用RIA服務自定義方法檢索到的數據
public IQueryable<TIMESLOT> GetPermissableTimeslots(
int roomID,
int semesterID,
Int16 year)
{
return this.ObjectContext.TIMESLOTs.Where<TIMESLOT>(
ts =>
ts.ROOM_ID == roomID &&
ts.SEMESTER == semesterID &&
ts.YEAR == year
);
}
(注:我將最終取代通過調用LINQ查詢到一個存儲過程,一旦我得到我現在的問題想通了)
Visual Studio中對此我可以使用如下加載數據在客戶端上生成GetPermissableTimeslotsQuery:
private void LoadPermissibleTimeSlots()
{
this.domainContext.Load(
domainContext.GetPermissableTimeslotsQuery(
this.CurrentRoom.ID,
this.CurrentSemester.ID,
this.CurrentYear),
(result) =>
{
this.Timeslots = result.Entities;
}
, null);
}
現在的問題我已經被添加和更新的時隙用戶客戶端的變化。由於我得到的結果不是一個EntitySet,也沒有直接與TIMESLOTS表相關聯,所以我不能只在結果實體集中更新它們並提交更改。我是否需要將更改的實體附加到與TIMESLOTS表相關聯的EntitySet,以便它們可以提交,還是需要在服務器端添加自定義添加和更新方法以支持此方法?
謝謝!看起來我對附件發生的方式和時間有一個基本的誤解。 –