2010-04-01 4 views
0

Je fais un test après avoir lu un article http://blogs.msdn.com/alexj/archive/2009/08/07/tip-30-how-to-use-a-custom-store-function.aspx sur la fonction udf appelée. Lorsque j'utilise une fonction avec objectContext.Entities.Where (t => udf (para1, para2) == 1), ici les entités ne sont pas ObjectQuery, mais un ObjectSet, la première fois que j'appelle la méthode, il fonctionne correctement, si Je réutilise objectContext, et l'exécute à nouveau mais avec para1, para2 différent, alors les valeurs de paramètre précédentes sont encore cachées, et le résultat est identique au précédent, ce qui est faux. Le profileur sql montre que les deux requêtes touchent la base de données, mais le t-sql est le même. Est-ce que je manque quelque chose? Et l'ObjectSet ne prend pas en charge .where (esql_string). Comment faire fonctionner udf avec ObjectSet?UDF appel dans le cadre de l'entité est mis en cache

Merci Fred

+0

Avez-vous regardé la trace SQL? Cela vous dirait assez rapidement si l'EF fait la bonne chose. –

Répondre

1

Fred,

Ce que vous décrivez ressemble beaucoup à un bug dans EF 4.

Je vais transmettre à certaines personnes de l'équipe EF pour enquêter.

Alex

+0

Merci. J'utilise vsnet 2010 RC, et les derniers bits ef4 –