0

hasPermission(Int 32)というメソッドを持つPersonというクラスがあります

私はいくつかのlinqに電話をかけようとしていて、さまざまなオプションを試しましたが、まだ解決策を見つけることができませんでした。誰かアイデアがあれば、助けてください。

私は現在持っています

IEnumerable<Person> co = this.Person();

//this.Person().Where(o => o.IsDeleted == false);

//    src.Where(o => o.IsDeleted == false).Select(v => new { Text = v.Name });
return this.Json(co,JsonRequestBehavior.AllowGet);

コメントで私が試した他のいくつかのことを見ることができます。

よろしくお願いします

ジェマ

4

1 に答える 1

1

AsEnumerableOK、これは LINQ to Entities であるため、次のメソッドを使用する必要があります。

// this.Person().Where(o => !o.IsDeleted) is translated by EF, the rest isn't
this.Person().Where(o => !o.IsDeleted).AsEnumerable().Where(p => p.hasPermission(5));

拡張メソッドはAsEnumerable、LINQ to Entities の結果をジェネリックにラップしますIEnumerable。したがって、後続の LINQ は EF によって SQL に変換されず、実行されるだけです。

詳細については、MSDN を参照してくださいAsEnumerable: http://msdn.microsoft.com/en-us/library/bb335435.aspx

于 2012-03-09T13:36:10.683 に答える