2012-11-12 15 views
5

Bizim çok büyük kod tabanı ExecuteMethodCall çağrıları yüzlerce ExecuteMethodCall ile LINQ to SQL Derleyen kullanma: Ancakbu biçimini izleyen

[Function(Name = "dbo.storedproc")] 
    public ISingleResult<UserData> GetUserData(
     [Parameter(Name = "UserId", DbType = "BigInt")] long? userId) 
    { 
     IExecuteResult result = ExecuteMethodCall(this, ((MethodInfo)(MethodBase.GetCurrentMethod())), userId); 
     return ((ISingleResult<UserData>)(result.ReturnValue)); 
    } 

, bu büyük performans sorunları (Linq To ile tanınmış sorunu vermek için çıkıyor SQL). Bu yüzden bu kodun en azından bir kısmını Derlenmiş Linq-Sql'ye dönüştürmeyi düşünüyorum.

Derlenmiş Linq To Sql örneklerini buldum, ancak bunların hiçbiri ExecuteMethodCall içeriyor. Bunun yerine, hepsi bir Linq sorgusunu derlerler (nereden ... seçimini yaparlar).

Birisi bana yukarıdaki kodu (ExecuteMethodCall kullanarak) Compiled Linq To SQL'e dönüştürülmüş bir örnek verebilirse, minnettar olurdum.

+0

Eğer microsoft blogda bu yayını gördünüz mü [Linq saklı yordamlar SQL - Guy Burstein'ın Blog'u] (http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDIQFjAA&url=http%3A%2F%2Fblogs.microsoft.co.il%2Fblogs%2Fbursteg % 2Farchive% 2F2007% 2F10% 2F05% 2Flinq-to-sql-depolanmış prosedürler.aspx & ei = jJKgULCXO9KU0QX9q4EQ & usg = AFQjCNEr-IG2GRfwSLPBGPXQvDqQUwASIg & sig2 = EGHEXpCmAfS-V3ok9AZzvg & cad = rja) Ben yararlı olabilir düşünüyorum –

+0

Sadece bu yazıyı okuyun. Ancak, ExecuteMethodCall sql sorgu için derlenmiş bir linq ile nasıl kullanıldığını göstermiyor. – user1147862

+0

Performans sorunu tam olarak nerede? GetCurrentMethod() 'sizi yavaşlatıyor ya da tamamen başka bir şey mi? –

cevap

0

select * kimliği = userId (yöntemin argüman),

SP kullanıcıdan: exec GetUserData @userId = userId

İlgili konular