C#中LINQ怎么生成下面那条SQL
2个回答
展开全部
通常有三种常用的方法用来追踪由 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 调试平台了。
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 调试平台了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询