NHibernate 如何更新 IEntity 上的 Id

Fab*_*bii 0 c# nhibernate

我的数据库中有一行 Id = '00000000-0000-0000-0000-000000000000',

我如何使用会话/事务强制更新此ID,基本上为该行分配一个有效的ID。

我试过了:

var testrow  = repo.get(id);
testrow.Id = Guid.NewGuid();
repo.UpdateRow(testRow);
Run Code Online (Sandbox Code Playgroud)

我的更新仓库更新方法:

public void UpdateRow(TestRow row)
        {
            using (ISession session = _sessionFactory.OpenSession())
            using (ITransaction transaction = session.BeginTransaction())
            {
                session.Update(row);
                transaction.Commit();
            }
        }
Run Code Online (Sandbox Code Playgroud)

我收到错误:

"Row was updated or deleted by another transaction"
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用以下命令删除对象:

session.delete(row) 
transaction.Commit();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Unexpected row count: 3; expected: 1
Run Code Online (Sandbox Code Playgroud)

有 3 行,每行都有一个唯一的 ID,其中一行的 ID 不正确,为 00000000-0000-0000-0000-000000000000'

Osc*_*car 5

id 绝不能更改,这是应用程序设计中的错误。删除旧实体并使用新值重新创建。