首先抱歉我的英语不好。
我的数据库结构类似于:
在EF4.1中使用RIA服务,选择仅具有某些特征的汽车的最佳方法是什么?
在客户端上,用户可以选择多个“特征”并通知值。 然后,我需要显示具有该特定值的所有汽车(“值”保存在CarCharacteristic表中) (像所有“汽车”(汽车)的东西都有“2”( CarCharacteristic )“门”(特征))
我想在客户端上这样做,但似乎不可能:(
为了能够在服务器上对此进行过滤,我需要至少发送所选特征的所有CharacteristicsId和用户通知的值。
问题是,如果我使用任何复杂(例如MyClass [])参数创建查询,我会收到错误:
域操作条目'GetCarsByCharacteristic'的参数'x'必须是预定义的可序列化类型之一
我认为我遗漏了一些明显的东西,因为它不会那么难......
如何做出这种事情的正确方法?
答案 0 :(得分:0)
首先,由于您要将数组作为查询的参数发送,因此您需要使用HasSideEffects=true
属性标记查询,如下所示:
[Query(HasSideEffects=true)]
现在你可以发送你自己的类作为参数(我不确定,我还没有检查过),但你绝对可以使用Dictionary<Guid, int>
类型的参数,我假设{{ 1}}是您用于Guid
的类型,而Ids
是值。
现在您可以根据需要过滤ID和设置值。
编辑:
另外,你没有提到使用int
,所以我猜你正在使用DomainDataSource
对象。在这种情况下,您可以添加过滤客户端,如下所示:
DomainContext