2012-11-12 13 views
5

Unsere sehr große Code-Basis Hunderte von Anrufen zu ExecuteMethodCall hat auf SQL nach diesem Muster:Linq kompiliert wird mit ExecuteMethodCall

[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)); 
    } 

Allerdings stellt dieser enormen Performance-Probleme zu geben (gut bekanntes Problem mit Linq To SQL). Ich versuche also, mindestens einen Teil dieses Codes in Compiled Linq To Sql umzuwandeln.

Ich fand Beispiele für Compiled Linq To Sql, aber keine von ihnen beinhalten ExecuteMethodCall. Stattdessen kompilieren sie alle eine Linq-Abfrage (von ... wo ... auswählen).

Ich wäre dankbar, wenn mir jemand ein Beispiel für den obigen Code (mit ExecuteMethodCall) geben könnte, der in Compiled Linq To SQL umgewandelt wurde.

+0

Haben Sie diesen Beitrag auf Microsoft-Blog finden Sie unter [Linq Stored Procedures in SQL - Guy Bursteins Blog] (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-zu-sql-stored-procedures.aspx & ei = jJKgULCXO9KU0QX9q4EQ & usg = AFQjCNEr-IG2GRfwSLPBGPXQvDqQUwASIg & sig2 = EGHEXpCmAfS-V3ok9AZzvg & cad = rja) Ich denke, es kann nützlich sein –

+0

Nur diesen Beitrag lesen. Es zeigt jedoch nicht, wie ExecuteMethodCall mit einer kompilierten Linq to SQL-Abfrage zu verwenden ist. – user1147862

+0

Wo genau ist das Leistungsproblem? Ist es 'GetCurrentMethod()', das dich verlangsamt oder etwas ganz anderes? –

Antwort

0

select * from user wo userid = userId (Argument des Verfahrens),

SP: exec getUserData @userId = userId

Verwandte Themen