c# - 如何仅选择一列以返回linq中的对象

标签 c# entity-framework linq

我试图只选择 CourseId 属性,但它给我一个错误

  Course co = db.Courses.Include("Students").Where(c => c.CourseName == "C#")
            .Select(cc => new Course() { CourseId = cc.CourseId }).SingleOrDefault();

错误:

EntityFramework.SqlServer.dll 中发生了“System.NotSupportedException”类型的异常,但未在用户代码中处理

附加信息:无法在 LINQ to Entities 查询中构造实体或复杂类型“Database1Model.Course”。

最佳答案

这个呢

var courseAndStudents = db.Courses
    .Where(c => c.CourseName == "C#")
    .Select(cc => new { cc.CourseId, cc.Students })
    .SingleOrDefault();

您只会获得 CourseId 和所有 Students

或者,如果您真的不需要Students,则只需选择CourseId

var courseId = db.Courses
    .Where(c => c.CourseName == "C#")
    .Select(cc => cc.CourseId)
    .SingleOrDefault();

关于c# - 如何仅选择一列以返回linq中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38150637/

相关文章:

c# - JQuery 为 MVC Post 设置隐藏输入

asp.net - Web.config 中使用附加 .mdf 数据库的数据库连接字符串不起作用

c# - 根据优先级数组对字符串数组进行排序

c# - LINQ 表达式。从范围引用的类型变量 'p',但未定义

c# - 重写 System.Web.Security.Roles 函数?

c# - 组合来自不同表的多个 Select 语句

visual-studio - 如何在 Visual Studio 2013 中自动化包管理器控制台

c# - 比较两个列表(整数)是否相等

c# - 将 List<T> 设置为 linq 查询结果导致超时

c# - 我们在哪里使用 Debug/Trace 语句