gpt4 book ai didi

c# - 如何使用 bool 变量切换 EntityFramework Tracker

转载 作者:太空狗 更新时间:2023-10-30 01:13:12 28 4
gpt4 key购买 nike

我需要代码相关的帮助。目前我正在使用 bool 变量打开 Tracking 和 NoTracking。想检查是否有更好的方法来编写这段代码:

private Task<TEntity> GetWithOrWithoutTracking(Expression<Func<TEntity, bool>>
predicate, bool isTracked = false)
{
if (isTracked)
return _dbSet.Where(predicate).AsTracking()
.FirstOrDefaultAsync();
else
return _dbSet.Where(predicate).AsNoTracking()
.FirstOrDefaultAsync();
}
}

最佳答案

我看不出你的例子有什么问题(除了 else 不是 super 有用),但为了可重用性,你可以使用扩展方法。

public static class QueryableExtensions
{
public static IQueryable<T> AsMaybeTracking<T>(this IQueryable<T> source, bool isTracked = false) where T : class
{
return isTracked ? source.AsTracking() : source.AsNoTracking();
}
}

关于c# - 如何使用 bool 变量切换 EntityFramework Tracker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51044575/

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