NHibernate删除最佳实践

时间:2012-11-15 10:47:20

标签: .net nhibernate

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命令,而不是一个。

1 个答案:

答案 0 :(得分:2)

第二种选择是最佳做法。 NHibernate需要在删除对象之前加载它,以便它通过对象图级联删除。我宁愿做一个直接的SQL删除,而不是像第一个选项那样创建一个伪造NHibernate的虚假对象。