1

CodeFluent メソッドを使用して ID が「1」のレコードを更新するための以下の単純化された C# コードがあります。

CFEObject anObject = new CFEObject();
anObject.ID = 1; //ID is the primary key, and an Identity Column
anObject.Name = "New Name";
anObject.Save();

上記のコードの問題は、ID 1 のオブジェクトを更新しないことです。代わりに、既存のレコードを編集するのではなく、次の ID を取得して新しいレコードを作成します。

「LoadById」メソッドを使用して CFE オブジェクトをロードすると上記の問題が解決することはわかっていますが、後で値が既に設定されるまで ID を持っていないため、それを使用できません。そのため、「LoadById」を使用すると、既存のセット プロパティが消去されます。

LoadById メソッドを使用せずに、ID が「1」の CFE レコードを強制的に更新するにはどうすればよいですか?

4

1 に答える 1

1

メソッドは、生成されたSaveストアド プロシージャを呼び出します。そのストアド プロシージャのコードを確認して、既存のレコードを更新する代わりに新しいレコードを作成する理由を理解できます。

デフォルトでは、オプティミスティック コンカレンシーが有効になっています。RowVersionこのモードでは、インスタンスを更新する前にプロパティを設定する必要があります。値が の場合null、ストアド プロシージャは新しいレコードを作成します。

于 2015-12-06T10:41:52.703 に答える