это сводит меня с ума. Я работаю над бизнес-приложением Silverlight 5 и использую службы WCF Ria (источник данных домена). В простом ChildControl я загружаю определенный (см. код ниже) источник данных домена «ddsTerminKonfiguration». Метод запроса возвращает общий список IQueryable‹TerminKonfiguration›. Если в этом списке нет элементов (...DataView.Count == 0), я хочу добавить новый объект "TerminKonfiguration". Когда я пытаюсь выполнить ddsTerminKonfiguration.DataView.Add(new TerminKonfiguration()); Я столкнулся с ошибкой «Добавить» не поддерживается этим 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>
Пространство имен «my» ссылается на «Project».Web.Services, а «my1» — на «Project».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();