Ⅰ 怎么查看linq产生的sql语句
最近在使用Linq To SQL的时候,为了了解不同Linq语句对性能造成的不同影响,需要获得Linq To SQL输出SQL语句。
如果是在桌面程序中,只需要
_context.Log = Console.Out; 即可Linq To SQL输出SQL语句。
Ⅱ SQL语句转化为Linq语句
分少点!回头帮我的团队打工偿还吧!O(∩_∩)O哈哈~
-------------
我的表是Table_1s和Table_2s
linq 查询如下:
from t in Table_1s
join f in Table_2s on t.B equals f.Key into FD
from f in FD.Where(b=>b.RowName=="B").DefaultIfEmpty()
join s in Table_2s on t.C equals s.Key into FDS
from s in FDS.Where(b=>b.RowName=="C").DefaultIfEmpty()
select new
{
A=t.A,
B=f.Value,
C=s.Value
}
---
对应sql如下:
-- Region Parameters
DECLARE @p0 NVarChar(1) SET @p0 = 'B'
DECLARE @p1 NVarChar(1) SET @p1 = 'C'
-- EndRegion
SELECT [t0].[A], [t1].[value] AS [B], [t2].[value] AS [C]
FROM [Table_1] AS [t0]
LEFT OUTER JOIN [Table_2] AS [t1] ON ([t1].[RowName] = @p0) AND ([t0].[B] = [t1].[key])
LEFT OUTER JOIN [Table_2] AS [t2] ON ([t2].[RowName] = @p1) AND ([t0].[C] = [t2].[key])
---
应该满足你的要求!
Ⅲ C#中LINQ怎么生成下面那条SQL
通常有三种常用的方法用来追踪由 LINQ To SQL 提供器生成的 SQL 命令:用 DataContext.log ,用 DataContext.GetCommand ,和用 LINQ To SQL 调试平台。
1) 用 DataContext.log
这句代码可以使生成的 SQL 显示在控制台窗口。这个 SQL 可以是查询,插入,更新和删除命令。
=======================================================
db.Log = Console.Out;
=======================================================
附加参考:
http://msdn.microsoft.com/en-us/library/bb386961.aspx
2) 用 DataContext.GetCommand
这个方法提供了有关 LINQ To SQL 生成的 SQL 命令的相关信息,但是它仅仅是获取方法而不影响 DataContext 的状态。请注意以下事项(引自 MSDN 文档):
· 参数必须非空,否则会抛出一个空参数异常。
· 正常的 LINQ 查询转换为 SQL 查询执行抛出异常的申请不能被转换。
· 只有以一个查询命令返回。特别是额外的命令,这是渴望加载命令,不包括在内。
· DataContext 不跟踪用户处理的命令,例如从返回的命令执行的结果不会被追踪,从而不影响 DataContext 的状态。
下面的示例显示 SQL 命令生成的控制台窗口中的 LINQ To SQL 查询。
======================================================
MyDataContextdb = new MyDataContext();
var query = from d in db.Departments select d;
DbCommand dc = db.GetCommand(q);
Console.WriteLine(dc.CommandText);
=======================================================
附加参考:
http://msdn.microsoft.com/en-us/library/bb882652.aspx
3) 用 LINQ To SQL 调试平台
LINQ To SQL 调试平台通过看见在 Visual Studio 调试平台 生成的 SQL 可以帮助我们调试 LINQ to SQL IQueryable<> 查询语句。我们也可以在平台上执行生成的 SQL 语句来检查返回值。
要安装 LINQ to SQL 调试平台,请按照以下步骤:
a) 下载 LINQ to SQL Visualizer.zip 压缩包在 这儿 。
b) 关闭正在与性的各种版本的 visual studio 2008 。
c) 从 .zip 压缩包的 /bin/debug/ 路径复制 SqlServerQueryVisualizer.dll 程序集到本地路径 /Program Files/Microsoft Visual Studio9.0/Common7/Packages/Debugger/Visualizers/ 。
d) 再次启动 Visual Studio2008 。现在我们就可以用 LINQ to SQL 调试平台了。
Ⅳ linq 动态循环Concat,生成sql语句不正确
linq的效率不是这么算的,不过不说这个,query的查询只有在数据第一次使用的时候才会执行,你使用的时候是在循环外。。。
Ⅳ 用linq to sql 把这个sql语句写出来,感激不尽
from r in context.Role
order by r.RoleId
select new { r.RoleId,r.Role,ProNum = (from u in context.UserInfo select u where u.Role == r).Count() }
Ⅵ sql语句如下,请问用linq to sql 怎样写
http://blog.csdn.net/pan_junbiao/article/details/7015633
参考里面的
7.嵌套类型形式
Ⅶ sql 语句转linq语句
int? temp;
var result=from p in tb_aaa
where p.title.Substring(0,8)=="(2012)年第" && int.Tryparse(p.title.Substring(8,2),temp) && p.title.Substring(10,1) =="号"
select p;
第一个表达式和第三个表达式不说了,主要是第二个,判断它是否可以转为数字,用到了tryparse,所以需要一个外部的int来配合,纯手写,可能有写大小写或语法错误
Ⅷ c# LINq实现SQL
varresult=fromarrinsite_jwserver
grouparrbyarr.s_ipintog
selectnew
{
cont=g.Count(),
s_ip=g.Key
};
foreach(varvinresult)
//v.cont
//v.s_ip
Ⅸ 如何从Linq to Entities得到生成的T-SQL语句
如何从Linq to Entities得到生成的T-SQL语句
class Program
2 {
3 static void Main(string[] args)
4 {
5 BreakAwayEntities context = new BreakAwayEntities();
6 var query = from r in context.Reservations join p in context.Payments on r.ReservationID equals p.ReservationID select new { r.Customer, p.Reservation };
7 string sql = ((ObjectQuery)query).ToTraceString();
8 Console.WriteLine(sql);
9 Console.Read();
10 }
11 }
Ⅹ 如何把下面的执行查询的sql语句转化为linq to sql语句
我在SQL里面测试了一下,@sql生成的sql语句是
selectYearMonth,[A]=sum(caseCodeAwhen'A'thenNumberelseNULLend),[B]=sum(caseCodeAwhen'B'thenNumberelseNULLend),[C]=sum(caseCodeAwhen'C'thenNumberelseNULLend)fromagroupbyYearMonth
而执行结果是