Ray*_*phy 7 c# asp.net entity-framework
如何在实体框架中使用replace方法.我使用以下代码但遇到错误.
using (SepasProjectEntities sp=new SepasProjectEntities())
{
var query = (from p in sp.HISAccidentLocationMappings
where p.Name.Replace('y','x').Contains(txt1.Text)
select p
).ToList();
}
Run Code Online (Sandbox Code Playgroud)
System.Data.Entity.dll中出现"System.NotSupportedException"类型的异常,但未在用户代码中处理
附加信息:LINQ to Entities无法识别方法'System.String Replace(Char,Char)'方法,并且此方法无法转换为存储表达式.
Ser*_*nov 11
基于这篇包含Entity Framework支持的方法列表的MSDN文章 - 只支持一个Replace方法的重载,它是
System.String Replace(String oldValue, String newValue)
Run Code Online (Sandbox Code Playgroud)
并不是
System.String Replace(char oldValue, char newValue)
Run Code Online (Sandbox Code Playgroud)
你正在使用.尝试用字符串版本替换它
Name.Replace('y','x')
Run Code Online (Sandbox Code Playgroud)
至
Name.Replace("y","x")
Run Code Online (Sandbox Code Playgroud)
我没有尝试过,但根据文档它应该工作
我通常使用其他格式的LINQ查询,如下所示:
using (SepasProjectEntities sp = new SepasProjectEntities())
{
var query = sp.HISAccidentLocationmappings
.Where(p => p.Name != null
&& p.Name
.Replace("y", "x")
.Contains(txt1.Text))
.ToList();
}
Run Code Online (Sandbox Code Playgroud)
Replace(char, char)
不行,但Replace(string, string)
会.Contains(string)
也应该工作.
归档时间: |
|
查看次数: |
5178 次 |
最近记录: |