Ich weiß um die Methode, die hier besprochen:Kompilierte LINQ-Abfrage und DataLoadOptions ... mit einem Twist!
Solving common problems with Compiled Queries in Linq to Sql for high demand ASP.NET websites
... aber für meine Situation nicht arbeiten, wie ich eine bekommen:
„Optionen Lesen Einstellung wird nicht nach den Ergebnissen erlaubt hat wurde von einer Abfrage zurückgegeben. "
Ich bin mit Codesmith PLINQO Skripte Einheiten und Manager-Code zu generieren, und der Manager-Code sieht etwa so aus:
public partial class SearchManager
{
#region Query
// A private class for lazy loading static compiled queries.
private static partial class Query
{
internal static readonly Func<MyDataContext,IOrderedQueryable<Search>>
GetAll = CompiledQuery.Compile(
(MyDataContext db) =>
from s in db.Search
orderby s.Name
select s);
}
#endregion
public IQueryable<Search> GetAll()
{
return Query.GetAll(Context);
}
}
Ich versuchte zunächst, eine statische Dataload in die Search Klasse wie folgt fallen:
public static readonly DataLoadOptions MyOptions =
(new Func<DataLoadOptions>(() =>
{
var option = new DataLoadOptions();
option.LoadWith<Search>(x => x.Rule);
return option;
}))();
... vorausgesetzt, es dann auf den Kontext, in dem GetAll Verfahren wie:
public IQueryable<Search> GetAll()
{
Context.LoadOptions = MyOptions;
return Query.GetAll(Context);
}
... und das gab mir den oben erwähnten Fehler. Liegt das daran, dass die Abfrage bereits kompiliert wurde und daher nicht "extra" DataLoadOptions hinzugefügt werden kann? Wenn ja, wie wäre es möglich, DataLoadOptions vor der Kompilierung der Abfrage anzuwenden?
Kontrolle der entsandte Antwort und tun es akzeptieren, wenn Sie die Informationen, die Sie –