c# - 如何从 SQL 表达式返回 IQueryable?
问题描述
尝试使用 C# 从我的数据库中查询时出现以下错误:
LINQ to Entities 无法识别方法“MyProject.Models.DB.Department getDepartment()”方法,并且该方法无法转换为存储表达式。
在我的控制器中,我有:
var query = db.Activities.AsQueryable();
query = query.Where(x => rs.department.Contains(x.getDepartment().id));
在我的模型中,我有以下方法返回正确Department
的Activity
. 我知道问题是我在执行查询时正在执行查询.First()
,但我找不到返回IQueryable
结果的方法:
public partial class Activity
{
public Department getDepartment()
{
return db.Departments.SqlQuery( "" +
"SELECT * FROM " +
"[snt].[Departments] " +
"INNER JOIN( " +
"SELECT " +
"[Users].departments_id AS id " +
"FROM " +
"[snt].[Users], " +
"[snt].[People], " +
"[snt].[EventPerson], " +
"[snt].[EventPersonTask], " +
"[snt].[Tasks], " +
"[snt].[Events], " +
"[snt].[Activities] " +
"WHERE " +
"[snt].[Activities].id = {0} AND " +
"[snt].[Events].id = [snt].[Activities].events_id AND " +
"[snt].[EventPerson].events_id = [snt].[Events].id AND " +
"[snt].[EventPerson].people_id = [snt].[People].id AND " +
"[snt].[EventPersonTask].tasks_id = [snt].[Tasks].id AND " +
"[snt].[EventPersonTask].eventperson_id = [snt].[EventPerson].id AND " +
"[snt].[Tasks].name = 'owner' AND " +
"[snt].[Users].is_active = 1 AND " +
"[snt].[Users].people_id = [snt].[People].id" +
" ) AS x " +
"ON " +
"x.id = [Departments].id", this.id).First();
}
}
解决方案
推荐阅读
- java - Java 通配符 - 创建 Arrays.asList 或 ImmutableList.of 的泛型
- amazon-web-services - 在 AWS 多容器 docker 环境中部署到特定容器
- python - 如何使用 numpy ndarray 使用给定数据创建 n 维数组
- javascript - javascript等待多个异步ajax响应不起作用
- mysql - 如何将语言环境数据库中的更新数据自动同步到云数据库中
- linux - 关于 OpenDaylight 的 VTN 功能
- angular - 关于 Angular 材料中的 Datepicker
- python - 在 Python 中生成通用乘法问题
- spring - Spring Boot 依赖于 Spring 3
- glsl - gl_Position.w 在 Vulkan 中的作用是什么?