虽然RIA服务似乎非常适合桌面操作&查询,我被困在一个传统的更新情况。 UPSERT (如果存在则更新,否则插入新):
首先:如果记录尚不存在,我想添加记录服务器端,否则如果它已经存在,我想更新其当前字段值之一。
第二:我不想从客户端查询数据库,看看是否存在记录。我只想在RIA服务上调用“UpsertData”方法,并且只在服务器端进行添加或更新。
我尝试了很多选项,最接近我使用[Update(UsingCustomMethod = true)]方法,传递一个新创建的(因此分离的)实体。用我的对象调用方法时,我得到: “无法在分离的实体上调用自定义方法。”
建议最好的方法来做到这一点,我们将不胜感激:)
答案 0 :(得分:2)
好的,我有一个解决方案。我不确定这是否是正确的方法,所以等待你的好自己的确认。
基本上我覆盖默认的RIA Services Insert方法并使其执行现有的记录检查(与任何其他业务规则检查一样):
现在看起来很简单,但也许有更好的方法来做到这一点。仍然可以提出意见和建议。
答案 1 :(得分:0)
我只是在存储过程中创建一个MERGE语句,然后映射函数import以不返回任何内容。