public long GetNewCRN()
{
return ((from c in DataContext.GetTable<Cust_Master>()
select c.CUSTSERH_CRN).Max() + 1);
}
此Linq to Sql
查询是否会首先从表中获取所有记录,然后选择列的最大值?
如果是,那么使用linq to sql
代替普通SqlCommand
并不是一个坏主意吗?
或者在linq to sql
中还有其他方式吗?
当我附加Console.Out时,我什么也看不见(命令提示符甚至没有打开)。
但是当我包括以下内容时: -
context.Log = new System.IO.StreamWriter("d:\\abcd.txt");
我收到一个错误,“进程无法访问该文件,因为它正被另一个进程使用”,该进程是“w3wp.exe”。
如何看到DataContext正在执行的sql命令呢?
答案 0 :(得分:2)
不,这不应该获取所有行。您只是要求最大值。这应该转换为SQL查询,如下所示:
SELECT MAX(CUSTSERH_CRN) FROM Cust_Master
您可以在执行命令之前将记录器附加到DataContext来验证是否是这种情况,例如:
DataContext.Log = Console.Out;