在构造函数中存储DbSet而不是调用DbContext.Set 适合各种用途

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在构造函数中存储DbSet而不是调用DbContext.Set 适合各种用途相关的知识,希望对你有一定的参考价值。

在我已经关注了一段时间(example)的存储库模式中,我一直有使用“新”DbSet的添加,删除等方法(例如,DbContext.Set<T>.Update(entity)。在测试中,这似乎,谢天谢地,总是返回相同的DbSet对象。有没有理由我不应该在构造函数中调用DbContext.Set<T>()一次并将其保存为属性而不是在每个方法中调用Set<T>()?我只是想确保我没有遗漏某些东西。

这个片段取自同一个链接:From the article linked earlier

答案

有没有理由我不应该在构造函数中调用DbContext.Set()一次并将其保存为属性而不是在每个方法中调用Set()?

不,这正是普通DbContext在初始化时的作用。见What calls the setters in an Entity?

以上是关于在构造函数中存储DbSet而不是调用DbContext.Set 适合各种用途的主要内容,如果未能解决你的问题,请参考以下文章

我可以在选择时让我的实体框架DbSet调用我的表值函数吗?

实体框架和 DbSet

为啥在我的代码中调用复制构造函数而不是移动构造函数?

在 EF6 中是不是有可能有一个 DbSet<T> 仅存在于内存中,而其余的是真实表?

ocaml 中的匹配是不是调用构造函数?

移动选定的构造函数而不是复制。 [参考标准]