我正试图使用 Linq to Entities 查询数据库上下文,但我遇到了以下错误:
LINQ to Entities 不认识 'Int32 Int32(System.String)' 方法,无法将此方法转换为存储表达式。
代码: 请提供原始内容。
LINQ to Entities 不认识 'Int32 Int32(System.String)' 方法,无法将此方法转换为存储表达式。
代码: 请提供原始内容。
public IEnumerable<CourseNames> GetCourseName()
{
var course = from o in entities.UniversityCourses
select new CourseNames
{
CourseID = Convert.ToInt32(o.CourseID),
CourseName = o.CourseName,
};
return course.ToList();
}
在看了这篇文章之后,我尝试过以下方法:
public IEnumerable<CourseNames> GetCourseName()
{
var temp = Convert.ToInt32(o.CourseID);
var course = from o in entities.UniversityCourses
select new CourseNames
{
CourseID = temp,
CourseName = o.CourseName,
};
return course.ToList();
}
但是它会抛出一个错误:
"当前上下文中不存在名称为'o'的变量"
这是我编写的 GetCourseName
类的代码。
namespace IronwoodWeb
{
public class CourseNames
{
public int CourseID { get; set; }
public string CourseName { get; set; }
}
}
int.Parse(o.CourseID)
; 出现错误是因为 EF 不知道如何将Convert.ToInt32
转换成 SQL,但我认为它应该理解int.Parse
..(最好使用适当的列类型,避免处理此转换 :)) - user166390Convert.ToInt32
替换为int.Parse
,嗯[算了](http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/6c8892db-8df7-4174-b9b0-764dc1df82ad),看起来是IEnumerable vs. IQueryable的区别? - user166390