gpt4 book ai didi

c# - 如何使用 EF5 和存储库检查具有给定 ID 的记录是否已存在

转载 作者:行者123 更新时间:2023-11-30 22:10:56 25 4
gpt4 key购买 nike

对于我的项目,我使用 Entity Framework 5Code First,我通过存储库和 UnitOfWork 使用它。

当我编辑/更新一个实体时,我想确保这个实体存在于数据库中。我不确定这必须如何完成。首先,我想查询具有此 ID 的实体并检查结果是否为 null(未找到具有此 ID 的实体),然后将我的逻辑基于此。

然后我决定也许这不是最好的方法,所以现在我使用这个:

if (unitOfWork.EntityRepository.GetAll().Any(r => r.EntityID == model.EntityID))

GetAll 在我的Repository 中实现为:

    public virtual IQueryable<TEntity> GetAll()
{
return dbSet;
}

我不确定使用 Any() 和尝试通过给定的 ID 获取记录之间是否有什么大的区别,在这两种方式中我需要查询数据库(我认为)。但由于这是我必须在我的代码中经常做的事情,我想知 Prop 体怎么做。

最佳答案

应该是相等的。

EF 提供程序的 Any()FirstOrDefault() LINQ 表达式之间的区别在于,前者导致 SQL EXISTS(... ) 子句,后者在一个简单的 WHERE ... 中。只要您查询索引列,这两者都非常快(并且可以互换)。

关于c# - 如何使用 EF5 和存储库检查具有给定 ID 的记录是否已存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20514270/

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