0

これは RIA サービス アプリケーション用です。

A次のようなエンティティがあります。

ID   int (PK, identity)
Code string

Code2 文字のプレフィックスAB、2 番目の 2 文字のプレフィックスCD、4 桁の整数で構成されます。エンティティがデータベースに追加されると、ユーザーはコードとして入力する必要があり、アプリケーションは、プレフィックスABCDを持つ別のコードでまだ使用されていない、可能な限り最小の整数をコードに追加する必要があります。ABたとえば、データベースが次のようになっている場合:

ABCD0001
ABCD0002
ABEF0003
CDEF0001

ユーザーが接頭辞を入力するABGHと、コードはABGH0004.

このアプリケーションを同時に使用する人が複数いるため、Cient-Side が優れたオプションであるとは思いません。何かご意見は?

ありがとう!

4

1 に答える 1

0

RIA サービス内でこれを実行しようとする場合、またはクライアントが同時コミットでシーケンスを壊す同時ユーザーが最大の問題だと思います。

私のアドバイスは、DB トリガーを使用してデータベースでこの値を計算することです。これは、同時コミットが正しい計算コードを取得することを意味します。

クライアント側のエンティティを新しいコードで更新するには、コミット後に自動的に更新されるとは思わないため、 を使用してエンティティをクライアントに再度ロードしLoadBehavior.RefreshCurrent、 でプロパティを強制的に更新する必要があります。保存された値。

これはかなり面倒ですが、これをクライアント側だけで行う良い方法は実際にはありません。

于 2012-07-25T00:04:35.463 に答える