Ⅰ linq语句转换成sql语句
linq语句呢?
Ⅱ c# LINq实现SQL
varresult=fromarrinsite_jwserver
grouparrbyarr.s_ipintog
selectnew
{
cont=g.Count(),
s_ip=g.Key
};
foreach(varvinresult)
//v.cont
//v.s_ip
Ⅲ sql 语句转成Linq to sql
说实话,你的sql似乎有问题。是否可以理解a与c都是outer表?
如果就按字面的要求,就是下面的:
var v = from c in EnterpriseInformation
from b in StateTax
from a in LandTax
where c.TaxCode==b.textCode || a.TaxCode ==c.TaxCode
select c;
但这个效率一定很低,可以改一下逻辑:
var v = (from c in EnterpriseInformation
join b in StateTax on c.TaxCode == b.textCode
into joinedtable
from g in joinedtable.DefaultIfEmpty()
select c)
.Union(
from c in EnterpriseInformation
join a in LandTax on a.TaxCode == c.TaxCode
into joinedtable
from g in joinedtable.DefaultIfEmpty()
select c);
Ⅳ 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产生的sql语句
最近在使用Linq To SQL的时候,为了了解不同Linq语句对性能造成的不同影响,需要获得Linq To SQL输出SQL语句。
如果是在桌面程序中,只需要
_context.Log = Console.Out; 即可Linq To SQL输出SQL语句。
Ⅵ linq的SQL操作
--闲话少说 代码
EntityConnection econ = new EntityConnection();
econ.ConnectionString = econString;
EntityCommand ecmd = new EntityCommand();
ecmd.CommandType = CommandType.Text;
ecmd.Connection = econ;
ecmd.CommandText = "select it.ItemID,it.ItemMatter from myContext.DBItem as it";
econ.Open();
EntityDataReader eReader = ecmd.ExecuteReader(CommandBehavior.SequentialAccess);
while (eReader.Read())
{
Console.WriteLine("{0},{1}", eReader[0].ToString(), eReader[1].ToString());
}
Ⅶ 如何把下面的执行查询的sql语句转化为linq to sql语句
我在SQL里面测试了一下,@sql生成的sql语句是
selectYearMonth,[A]=sum(caseCodeAwhen'A'thenNumberelseNULLend),[B]=sum(caseCodeAwhen'B'thenNumberelseNULLend),[C]=sum(caseCodeAwhen'C'thenNumberelseNULLend)fromagroupbyYearMonth
而执行结果是
Ⅷ 如何查看Linq to SQL运行时,实际执行的Sql语句
调试Linq to sql代码是, 如果遇到错误,很难判断错误的原因是什么,如果能够输出实际执行的sql原文,对于我们寻找错误的原因有有很大帮助。
以下是我用到的方法:
StringBuilder sql = new StringBuilder();
try
{
using (var context = new DataContext())
{
context.Log = new System.IO.StringWriter(sql);
context.SubmitChanges();
}
}
finally
{
sql.ToString();
}
Ⅸ 用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() }
Ⅹ 如何查看linq生成的sql
linq使用对象的方式来操作数据库。最后根本的还是生成原始的sql。但是对象的方式掩盖了很多原本的sql面貌可能会是我们不明白对应的sql是什么。还好linq可以输出sql语句
DataClassesDataContext dc = new DataClassesDataContext();
这个对象提供的日志功能。就是输出对应的sql语句。在控制台应用程序下。使用dc.console(有误)可以直接输出显示对应的sql语句。
在windonw和web程序下面可以建立一个txt文件日志。把生成的sql记录下来。代码比较简单了
DataClassesDataContext dc = new DataClassesDataContext();
StreamWriter sw = new StreamWriter(Server.MapPath("sqlLog.txt"), true); // Append
dc.Log = sw;
//然后是linq的相关数据操作
sw.Flush();
sw.Close();
就这样对应的sql语句就记录到sqlLog.txt文件中了。
我们可能会发现生成的sql在我们意料之外。呵呵。我的感觉是这样