Home
Manage Your Code
Snippet: Action Script (ActionScript)
Title: Action Script Language: ActionScript
Description: Notice that SQL IQueryable possible outcomes. Views: 27
Author: haci bayram akkaya Date Added: 7/31/2010
Copy Code  
public static class Link
2{
3    static Assembly efAssembly = typeof(EntityCommand).Assembly;
4
5    public static string ToTraceString(this IQueryable query)
6    {
7        MethodInfo method = query.GetType().
8        GetMethod("ToTraceString");
9
10        if (method != null)
11            return method.Invoke(query, null).ToString();
12        else return "";
13    }
14
15    public static string ToTraceString(this ObjectContext context)
16    {
17        string intern = "System.Data.Mapping.Update.Internal";
18
19        Type dynUpdate = efAssembly.GetType(intern + ".DynamicUpdateCommand");
20        Type updTranslate = efAssembly.GetType(intern + ".UpdateTranslator");
21        Type funcUpdate = efAssembly.GetType(intern + ".FunctionUpdateCommand");
22
23        EntityConnection conn = context.Connection as EntityConnection;
24        object[] parameter = new object[]
25                {
26                context.ObjectStateManager,
27                conn.GetMetadataWorkspace(),
28                conn, context.CommandTimeout
29                };
30
31        BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;
32        object updTranslator = Activator.CreateInstance(updTranslate,flags, null, parameter, null);
33        MethodInfo prodCommands = updTranslate.GetMethod("ProduceCommands", flags);
34        object updateCommands = prodCommands.Invoke(updTranslator, null);
35        List<DbCommand> dbCommands = new List<DbCommand>();
36
37        foreach (object obj in (IEnumerable)updateCommands)
38        {
39            if (funcUpdate.IsInstanceOfType(obj))
40            {
41                FieldInfo dbCommand = funcUpdate.
42                GetField("m_dbCommand", flags);
43                dbCommands.Add((DbCommand)dbCommand.GetValue(obj));
44            }
45            else if (dynUpdate.IsInstanceOfType(obj))
46            {
47                MethodInfo createCommand = dynUpdate.
48                GetMethod("CreateCommand", flags);
49                object[] mParams = new object[] { updTranslator, new Dictionary<long, object>() };
50                dbCommands.Add((DbCommand)createCommand.Invoke(obj, mParams));
51            }
52            else
53                throw new NotImplementedException("Unbekannter Update-Kommandotyp");
54        }
55
56        StringBuilder ts = new StringBuilder();
57        foreach (DbCommand cmd in dbCommands)
58        {
59            ts.AppendLine("\r\n****** Kommand Beginn ******");
60            ts.AppendLine(cmd.CommandText);
61            ts.AppendLine("*** Parameterwerte ***:");
62            foreach (DbParameter p in cmd.Parameters)
63                ts.AppendFormat("{0} = {1}\r\n", p.ParameterName, p.Value);
64            ts.AppendLine("****** Kommand Ende *********\r\n");
65        }
66
67        return ts.ToString();
68    }
69}
Usage
System.Reflection System.Data.EntityClient System.Collection.Generic System.Data.Common System.Collection System.Text
Notes
Thanks to sorce maç oyunlari,dora oyunlari and ben 10 games... Best regards..