0

NHibernate 中按 id 删除对象的最佳实践是什么。你可以同时做

public void Delete(int id) 
{
    Session.Delete(new MyEntity { Id = id });
}

或者你可以做

public void Delete(int id) 
{
    var entity = Session.Get<MyEntity>(id);
    Session.Delete(entity);
}

第二个选项对我来说感觉更清晰,因为您不只是为了删除而编写新对象,但另一方面,您将执行两个 SQL 命令,而不是一个。

4

1 回答 1

2

第二个选项是最佳实践。NHibernate 需要在删除之前加载对象,以便通过对象图级联删除。我宁愿直接删除 SQL,也不愿像第一个选项那样创建一个伪造的对象来欺骗 NHibernate。

于 2012-11-15T17:25:58.573 回答