这适用于RIA服务应用程序:
我们有一个实体A
,如下所示:
ID int (PK, identity)
Code string
Code
由两个字符前缀AB
,第二个两个字符前缀CD
和一个四位整数组成。将实体添加到数据库时,用户应输入ABCD
作为代码,应用程序应将尽可能小的整数附加到代码中,该代码尚未在{{1}的其他代码中使用} 字首。例如,如果db看起来像:
AB
并且用户输入前缀ABCD0001
ABCD0002
ABEF0003
CDEF0001
,代码应为ABGH
。
将会有多个人同时使用此应用程序,所以我认为Cient-Side不是一个很好的选择。有什么想法吗?
谢谢!
答案 0 :(得分:0)
我认为,如果您尝试在RIA Services或客户端内执行此操作,则最大的问题是并发用户会同时提交这些序列。
我的建议是使用数据库触发器在数据库中计算此值,这意味着任何同时提交都将获得正确的计算代码。
要使用新代码刷新客户端实体,因为我认为它不会在提交后自动更新,您需要使用LoadBehavior.RefreshCurrent
再次将实体加载到客户端强制它使用保存的值更新属性。
这很麻烦,但实际上没有一个好的方法只能做客户端。