Tag: sqlprofiler

Linq-To-SQL多次访问数据库

我试图通过在数据库的一次访问中包含子属性来提高我的Linq-to-SQL查询的效率。 我开始尝试各种linq查询来实现这一目标。 查询变得越来越复杂,所以我尝试了LoadWith()选项: 我的DAL类的构造函数设置LoadWith()设置: public TrackerJobData() { dataLoadOptions = new DataLoadOptions(); dataLoadOptions.LoadWith(x => x.SpecBarcodeRecords); dataLoadOptions.LoadWith(x => x.TrackerJobEquipmentTriggerRecords); dataLoadOptions.LoadWith(x => x.EtaRecord); this.Database.LoadOptions = dataLoadOptions; } 这是我正在使用的查询: public TrackerJob GetItem(int trackerJobId) { TrackerJobRecord record = (from trackerJob in this.Database.TrackerJobRecords where trackerJob.TrackerJobId == trackerJobId select trackerJob).FirstOrDefault(); return record.Map(); } 当我在linq查询 (而不是返回) 上调试和F10 时 ,我在SQL事件探查器中获得此输出: 请原谅我对SQL事件探测器的无知,但是三条突出显示的行是否意味着从客户端(我的代码)到服务器有三次往返? 如果是这样,为什么? SQL Server是否会在一次旅行中执行多个sp_executesql调用? […]

传递选择器函数时,OrderBy不会转换为SQL

当我执行: var t = db.Table1.OrderBy(x => x.Name).ToList(); 在SQL事件探查器中,这是已翻译的SQL: SELECT [Extent1].[ID] AS [ID], [Extent1].[Name] AS [Name] FROM [dbo].[Table1] AS [Extent1] ORDER BY [Extent1].[Name] ASC 哪个是对的。 但是,如果我将选择器函数传递给OrderBy: Func f = x => x.Name; var t = db.Table1.OrderBy(f).ToList(); 翻译的SQL是: SELECT [Extent1].[ID] AS [ID], [Extent1].[Name] AS [Name] FROM [dbo].[Table1] AS [Extent1] orderby完全没有翻译。 有什么问题? 它们是相同的lambda函数,唯一的区别在于第二种情况,它首先被赋值给一个变量。

C#,sp_executesql和不正确的语法

我正在调用下面的代码。 在线(IDataReader dr = cmd.ExecuteReader()) sql barfs 在’CompanyUpdate’附近的语法不正确。 using (SqlCommand cmd = new SqlCommand(“CompanyUpdate”)) { cmd.Parameters.Add(“@CompanyID”,SqlDbType.Int); cmd.Parameters.Add(“@Description”,SqlDbType.VarChar,50); cmd.Parameters[“@CompanyID”].Value = companyid; cmd.Parameters[“@Description”].Value = description; SqlConnection cn = new SqlConnection(“Data Source=[datasource];Initial Catalog=dotNext;User ID=[user];Password=[password];Pooling=True;Application Name=dotNext”); cn.Open(); cmd.Connection = cn; using (IDataReader dr = cmd.ExecuteReader()) { if (dr.Read()) { this.CompanyID = dr.GetInt32(0); } } } 我看了一下sqlprofiler并注意到以下内容: exec sp_executesql N’CompanyUpdate’,N’@CompanyID […]