4
LINQ to Entitiesがメソッドを認識しない
linqクエリを実行しようとすると、次のエラーが発生します。 LINQ to Entitiesは 'Boolean IsCharityMatching(System.String、System.String)'メソッドを認識せず、このメソッドはストア式に変換できません。 私は以前の多くの質問を読んだことがありますが、人々が同じエラーを受け取る場合、これを正しく理解できれば、LINQ to Entitiesはlinqクエリ式全体をサーバークエリに変換する必要があるため、外部メソッドを呼び出すことができません初期化。シナリオをうまく機能させることができず、脳が溶け始めているので、誰かが私を正しい方向に向けてくれることを期待していました。私たちはEntity Frameworkと仕様パターンを使用しています(そして私は両方とも初めてです)。 仕様を使用するコードは次のとおりです。 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 …