0

2つのGUIDフィールドを持つ(レガシー)テーブルがあります。2番目のGUIDフィールドはnullにすることができますが、linq to sqlを使用して、挿入時に非重複GUIDを自動生成したいと思います。自動同期を「OnInsert」に設定し、自動生成値をTrueに設定しています。ただし、何らかの理由で、レコードがDBに配置されているときにGUID値を自動生成/挿入していません。DBにないGUIDが見つかるまでループ生成をループして追加できると思いますが、それはあまりエレガントではないようです。linqtosqlを使用してこれを行うためのより良い方法があると確信しています。これを行う方法について何か提案はありますか?nullableプロパティがTに設定されているため、GUIDを作成していませんか?

ここに画像の説明を入力してください

以前にも同様の問題がありましたが、linq to sqlがGUIDを追加できるようにIDフィールドのプロパティを変更する方法を学びました。SQLサーバーがそれを実行できるようにLinqがGUIDを追加しないようにするにはどうすればよいですか?この場合のGUIDはnull可能であり、PKではないため、ここではそのソリューションを使用できません。そのため、リンクされた質問で行ったようにプロパティを変更することはできません。

4

1 に答える 1

2

DBにないGUIDが見つかるまで、GUIDの生成をループできると思います...

GUIDの生成に使用する場合Guid.NewGuid()は、同一の2つを生成しないでください。それが起こった場合、あなたは絶対に信じられないほどのオッズを打ち負かしたでしょう。Guid.NewGuid()これにより、地球上の誰もこれまでに生成したことのないGUIDが返されると考えるのが安全です。

于 2012-08-02T05:24:12.363 に答える