它让我疯狂。我正在使用 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();