gpt4 book ai didi

c# - 如何使用存储库模式在事务中保留 IQueryable<>?

转载 作者:太空狗 更新时间:2023-10-29 20:15:04 25 4
gpt4 key购买 nike

根据 NHProf,不鼓励使用隐式事务:

http://nhprof.com/Learn/Alerts/DoNotUseImplicitTransactions

但是,NHibernate LINQ 返回一个 IQueryable<>当从数据库中读取对象时,这是延迟评估的。我在存储库中有这个方法:

public IQueryable<T> GetAll<T>()
{
using (var transaction = _session.BeginTransaction())
{
var data = _session.Linq<T>();
transaction.Commit();
return data;
}
}

这里的问题是该方法将在 data 之前提交事务被评估。有没有办法使用存储库模式并保留 IQueryable<>在显式交易中?或者读操作是否可以接受使用隐式事务?

最佳答案

存储库不应创建事务。这是一个单独层的职责(取决于应用程序类型)。

关于c# - 如何使用存储库模式在事务中保留 IQueryable<>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3721209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com