为了账号安全,请及时绑定邮箱和手机立即绑定

Linq to实体不识别方法。

Linq to实体不识别方法。

慕尼黑5688855 2019-06-18 13:09:19
Linq to实体不识别方法。在尝试执行Linq查询时,我得到了以下错误:Linq to Entites不识别‘boolealIsCharityMatching(System.String,System.String)’方法,而且此方法无法转换为存储表达式。我已经读过很多以前的问题,人们会得到同样的错误,如果我正确理解,这是因为LINQto实体需要将整个Linq查询表达式转换成服务器查询,因此您不能在其中调用外部方法。我还没能把我的场景转化成一些有用的东西,我的大脑开始融化,所以我希望有人能给我指明正确的方向。我们使用的是实体框架和规范模式(这两者我都是新手)。下面是使用规范的代码:ISpecification<Charity> specification = new CharitySearchSpecification(charityTitle, charityReference);charities = charitiesRepository. Find(specification).OrderBy(p => p.RegisteredName).ToList();下面是Linq表达式:public System.Linq.Expressions.Expression<Func<Charity, bool>> IsSatisfied(){     return p => p.IsCharityMatching(this.charityName, this.charityReference);}以下是IsCharityMatching方法:public bool IsCharityMatching(string name, string referenceNumber){     bool exists = true;     if (!String.IsNullOrEmpty(name))     {         if (!this.registeredName.ToLower().Contains(name.ToLower()) &&             !this.alias.ToLower().Contains(name.ToLower()) &&            !this.charityId.ToLower().Contains(name.ToLower()))         {             exists = false;         }     }     if (!String.IsNullOrEmpty(referenceNumber))     {         if (!this.charityReference.ToLower().Contains(referenceNumber.ToLower()))         {             exists = false;         }     }     return exists;}如果你需要更多的信息,请告诉我。非常感谢,安娜莉
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

我和你有个类似的问题这个LINQ文档帮助我找到了正确的字符串函数来解决这些限制。


查看完整回答
反对 回复 2019-06-18
  • 3 回答
  • 0 关注
  • 442 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信