具有“自定义”密钥的Ria服务实体

时间:2012-07-23 13:42:50

标签: sql-server wcf-ria-services

这适用于RIA服务应用程序:

我们有一个实体A,如下所示:

ID   int (PK, identity)
Code string

Code由两个字符前缀AB,第二个两个字符前缀CD和一个四位整数组成。将实体添加到数据库时,用户应输入ABCD作为代码,应用程序应将尽可能小的整数附加到代码中,该代码尚未在{{1}的其他代码中使用} 字首。例如,如果db看起来像:

AB

并且用户输入前缀ABCD0001 ABCD0002 ABEF0003 CDEF0001 ,代码应为ABGH

将会有多个人同时使用此应用程序,所以我认为Cient-Side不是一个很好的选择。有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为,如果您尝试在RIA Services或客户端内执行此操作,则最大的问题是并发用户会同时提交这些序列。

我的建议是使用数据库触发器在数据库中计算此值,这意味着任何同时提交都将获得正确的计算代码。

要使用新代码刷新客户端实体,因为我认为它不会在提交后自动更新,您需要使用LoadBehavior.RefreshCurrent再次将实体加载到客户端强制它使用保存的值更新属性。

这很麻烦,但实际上没有一个好的方法只能做客户端。