I construit un modèle Entity Framework (v1) qui comprend l'héritage, comme celui-ci:LINQ to Entities
Classe de base: Problème
< - plainte
< - CustomerQuery etc. (6 classes dérivées)
Ces classes correspondent aux tables correspondantes dans SQL Server. J'ai été impressionné par la façon dont je pourrais utiliser LINQ pour créer des entités - EF estime qu'il doit mettre des données dans une table, obtenir la valeur de la clé d'identité et l'utiliser dans l'autre table.
MAIS: Quand je fais une requête simple comme la
suivantevar result = dataContext.IssueSet.Where(x => x.Id == id);
... le ToTraceString révèle code SQL plus de 1000 lignes longues! Et cela fonctionne avec peine.
Pensez-vous qu'il est probable que j'ai fait quelque chose de mal dans mon modèle ou est l'énorme code SQL caractéristique des structures d'héritage dans L2E?
P.S. Voici le début de de la chaîne de trace SQL pour info:
SELECT
1 AS [C1],
CASE WHEN ((NOT (([UnionAll8].[C45] = 1) AND ([UnionAll8].[C45] IS NOT NULL)))
AND (NOT (([UnionAll8].[C46] = 1) AND ([UnionAll8].[C46] IS NOT NULL)))
AND (NOT (([UnionAll8].[C47] = 1) AND ([UnionAll8].[C47] IS NOT NULL)))
AND (NOT (([UnionAll8].[C48] = 1) AND ([UnionAll8].[C48] IS NOT NULL)))
AND (NOT (([UnionAll8].[C49] = 1) AND ([UnionAll8].[C49] IS NOT NULL)))
AND (NOT (([UnionAll8].[C50] = 1) AND ([UnionAll8].[C50] IS NOT NULL)))
AND (NOT (([UnionAll8].[C51] = 1) AND ([UnionAll8].[C51] IS NOT NULL)))
AND (NOT
Je pense que vous avez probablement fait quelque chose de bizarre dans votre configuration de EF - J'ai utilisé EF pendant un certain temps et je n'ai jamais eu de tels problèmes. –
Je ne suis pas encouragé après avoir lu ceci: http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/e412859c-4c85-4769-8c14-96bd0f3e022b (quelques personnes qui se retrouvent avec 10k lignes de SQL et aucune solution en vue) – Martin