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

第二个选项是最佳做法。NHibernate需要在删除对象之前加载对象,以便它通过对象图级联删除。我宁愿直接进行SQL删除,也不愿创建一个虚假的对象来欺骗NHibernate,就像第一个选项一样。

最新更新