Je sais au sujet de la méthode décrite ici:Requête LINQ compilée & DataLoadOptions ... avec une torsion!
Solving common problems with Compiled Queries in Linq to Sql for high demand ASP.NET websites
... mais cela ne fonctionne pas pour ma situation que j'obtenir:
« Définition des options de charge n'est pas autorisé après les résultats ont été renvoyé d'une requête. "
J'utilise des scripts CodeSmith PLINQO pour générer des entités et le code de gestionnaire, et le code de gestionnaire ressemble à ceci:
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);
}
}
J'ai d'abord essayé laissant tomber DataLoadOptions statique dans la classe Searchmanager comme ceci:
public static readonly DataLoadOptions MyOptions =
(new Func<DataLoadOptions>(() =>
{
var option = new DataLoadOptions();
option.LoadWith<Search>(x => x.Rule);
return option;
}))();
... puis en fournissant au contexte dans la méthode GetAll comme:
public IQueryable<Search> GetAll()
{
Context.LoadOptions = MyOptions;
return Query.GetAll(Context);
}
... et cela m'a donné l'erreur que j'ai noté ci-dessus. Est-ce parce que la requête est déjà compilée et que vous ne pouvez donc pas ajouter "Extra" DataLoadOptions? Si oui, comment serait-il possible d'appliquer les DataLoadOptions avant la compilation de la requête?
vérifier la réponse affichée et faire accepter si vous avez l'info que vous voulez –