그것은 나를 미치게합니다. 저는 Silverlight 5 Business Application에서 WCF Ria Services (도메인 데이터 소스)를 사용하고 있습니다. 간단한 ChildControl에서 정의 된 (아래 코드 참조) 도메인 데이터 소스 "ddsTerminKonfiguration"을로드합니다. 쿼리 메서드는 일반 IQueryable <TerminKonfiguration> 목록을 반환합니다. 이 목록에 항목이 없다면 (... DataView.Count == 0) "TerminKonfiguration"이라는 새 개체를 추가하고 싶습니다. ddsTerminKonfiguration.DataView.Add (새로운 TerminKonfiguration())를 실행하려고 할 때; 나는 "Add '가이 ICollectionView에 의해 지원되지 않는다는 오류를 만나게된다. (나는 단지 독일의 오류 메시지를 알고있다. 그래서 나는 모두가 내 번역을 이해할 수 있기를 바란다 :-D). 다른 개발자가 코딩 한이 프로젝트의 유사한 코드 스 니펫이 제대로 작동하고 있습니다.이 문제를 해결하는 방법을 모르겠습니다.도메인 데이터 소스에 새 객체 추가
누구나 내 문제에 대한 아이디어 나 해결책이 있습니까?
내 도메인 데이터 소스
...<riaControls:DomainDataSource Name="ddsTerminKonfiguration"
Width="0"
Height="0"
AutoLoad="False"
d:DesignData="{d:DesignInstance my1:TerminKonfiguration, CreateList=true}"
LoadedData="ddsTerminKonfiguration_LoadedData"
SubmittedChanges="ddsTerminKonfiguration_SubmittedChanges"
QueryName="GetTerminKonfigurationQuery">
<riaControls:DomainDataSource.DomainContext>
<my:RRPDomainContext />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.QueryParameters>
<riaControls:Parameter ParameterName="param01" />
<riaControls:Parameter ParameterName="param02" />
<riaControls:Parameter ParameterName="param03" />
<riaControls:Parameter ParameterName="param04" />
</riaControls:DomainDataSource.QueryParameters>
</riaControls:DomainDataSource>
네임 스페이스 "내"참조 "프로젝트".Web.Services와 "MY1"에서 "프로젝트".Web.Models합니다.
쿼리 방법 ...
public IQueryable<TerminKonfiguration> GetTerminKonfiguration(string param01, string param02, int param03, int param04) {
return this.ObjectContext.TerminKonfiguration.Where(d => (d.MandantenNr == param01) && (d.WorkflowNr == param02) && (d.WfAufgabeId == param03) && (d.WfAufgabeIdGlobal == param04));
}
내가 DataView를 새 개체를 추가하려고 조각, ...
if (this.ddsTerminKonfiguration.DataView.Count == 0) {
TerminKonfiguration tmpConfig = new TerminKonfiguration();
/*
define the new object
*/
this.ddsTerminKonfiguration.DataView.Add(tmpConfig); // problematic line
}
this.ddsTerminKonfiguration.SubmitChanges();
답장을 보내 주셔서 감사합니다. 따라서 DataGrid에 바인딩하지 않고 하나의 항목/개체 만 쿼리하고 작업하는 것은 드문 일입니까? ;-) 어쩌면 내가 도메인 데이터 소스 InvokeOperation와 함께 일을하지 않고 그것을 할 수 있습니다. 어쨌든 : 힌트를 보내 주셔서 감사합니다. :-) – Chris
DomainDataSource는 페이징, 정렬 및 필터링 작업에 이상적입니다. 컨텍스트에 항목을 추가하는 경우 컨텍스트에 항목을 추가해야합니다. 당신을 위해 RRPDomainContext.TerminKonfigurations.Add (... –