Yod*_*oda 4 c# linq entity-framework
如果我firstLetterOfLastName通过""在表达式中添加空字符串来转换为字符串,则在尝试将结果转换为时,会出现以下异常List:
EntityFramework.SqlServer.dll中发生了'System.NotSupportedException'类型的第一次机会异常
麻烦的代码:
public ActionResult Index(char firstLetterOfLastName = 'A') {
var queryResult = db.Persons.Where(person => person.LastName.StartsWith(firstLetterOfLastName + ""))
.OrderBy(person => person.Id);
var list = queryResult.ToList(); // EXCEPTION
return View(list);
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在LINQ表达式之外进行转换时,如下所示:
public ActionResult Index(char firstLetterOfLastName = 'A') {
string flofnAsString = firstLetterOfLastName + "";
var queryResult = db.Persons.Where(person => person.LastName.StartsWith(flofnAsString + ""))
.OrderBy(person => person.Id);
var list = queryResult.ToList();
return View(list);
}
Run Code Online (Sandbox Code Playgroud)
没有问题.为什么会这样?
该错误告诉您确切原因.查询提供程序不知道如何将该操作映射到SQL.当您在应用程序中执行该操作并将其评估为其值时,它确实知道如何处理该操作的结果.
| 归档时间: |
|
| 查看次数: |
2069 次 |
| 最近记录: |