0

这是针对 RIA 服务应用程序的:

我们有一个A看起来像这样的实体:

ID   int (PK, identity)
Code string

Code两个字符前缀AB、第二个两个字符前缀CD和一个四位整数组成。当实体被添加到数据库中时,用户应该输入ABCD作为代码,并且应用程序应该将最小可能的整数附加到代码中,该整数尚未在具有AB前缀的另一个代码中使用。例如,如果数据库看起来像:

ABCD0001
ABCD0002
ABEF0003
CDEF0001

并且用户输入前缀ABGH,代码应该是ABGH0004

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

谢谢!

4

1 回答 1

0

我认为如果您尝试在 RIA 服务或客户端内部执行此操作,那么您最大的问题是并发用户通过同时提交来破坏序列。

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

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

这很麻烦,但真的没有一个好方法可以只在客户端做这个。

于 2012-07-25T00:04:35.463 回答