c# - 计算属性的显式加载

标签 c# entity-framework

假设在我的模型中我有一个计算属性 A,它依赖于 BC.D

是否可以制作

.Include("A")

等于

.Include("B").Include("C.D")

在实体表达式的 linq 中?

最佳答案

不,这不可能。 Include指定要包含在查询结果中的相关对象(即要连接的表)。因此 A 不是相关对象,而是一个简单的计算属性,因此无法包含它。


受@CodeCaster 的启发——如果你不想为这个实体创建存储库,你可以编写扩展方法来执行包含

public static IQueryable<Foo> IncludeA(this DbSet<Foo> foos)
{
    return foos.Include("B").Include("C.D");
}

用法:

db.Foos.IncludeA()

关于c# - 计算属性的显式加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21111124/

相关文章:

c# - 识别行计数程序中的 C# 或 C++ 函数开始

c# - 没有具有键 'IEnumerable<SelectListItem>' 的 “Geslacht” 类型的 ViewData 项

C# Linq 快速计算列表中项目的有效方法

javascript - 从下拉列表中选择值后 MVC 重新加载页面

c# - 为什么 LET 语句的顺序在此 Entity Framework 查询中很重要?

c# - 使用 Polly 从异步函数进行重试

c# - 为什么窗口的卸载事件不会在 WPF 中触发?

LINQ to Entities 无法识别方法 'System.String Format(System.String, System.Object, System.Object)'

asp.net-mvc-3 - 使用存储库模式获取最后插入的行 ID

c# - 如何在 C# 中将持久实体转换为具体类型