1

我有以下简化的 C# 代码来使用 CodeFluent 方法更新 ID 为“1”的记录:

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 回答