0

ユーザー アカウントのリストを含む Excel ファイルがあります。これらの UserAccount をインポートして RavenDB に保存する方法もあります。Excel ファイルに、UserAccount オブジェクトの ID (useraccounts/55) を保存します。RavenDB は値を割り当てていません。私が割り当てています。私のインポートはうまく機能しています。

でも、

後で、次の方法を使用して、管理パネルから新しいユーザー アカウントを保存しようとしました。

       [HttpPost]
            public ActionResult Create(UserAccountViewModel input)
            {
               // Validation omitted             

                    var model = new UserAccount()
                    {
                        Email = input.Email,
                        FirstName = input.FirstName,
                        LastName = input.LastName,
                        Phone = input.Phone,
                        Username = input.Username,
                        AuthorizeNetCustomerProfileId = customer.ProfileID,
                        Password = input.Password,

                    };

                    Raven.Store(model);
                    Raven.SaveChanges();
                    return RedirectToAction("Index");
             }

電話すると

Raven.Store(model) 

Id を新しい UserAccount オブジェクトに割り当てますが、1 から始まります。そのため、初めてこれを実行しようとすると、UserAccounts/1 が新しい UserAccount に割り当てられます。問題は、インポートから UserAccounts/1 が既に存在するため、変更の保存を呼び出すと、etag 例外が発生することです。

メソッドを再度実行すると、UserAccounts/2 などが割り当てられますか? アイデア?

4

1 に答える 1

2

最も簡単な方法は、UserAccount クラスに文字列 Id プロパティを設定し、それに「UserAccounts/」の値を割り当てることです。この末尾のスラッシュは、HiLo の代わりに ID のようなプロセスを使用して RavenDB に ID を割り当てるように要求します。やや遅くなりますが、動作します。

これを解決するより良い方法は、サーバー上の HiLo ドキュメントを変更して、利用可能な最初の範囲から開始することですが、それは面倒です。

于 2013-01-29T16:45:43.170 に答える