Linq-To-Sql LoadWith命令

时间:2013-11-25 16:59:47

标签: c# sql linq

如何在使用SqlCommand选项运行时获取用于获取子记录的查询的LoadWith个?

假设这样的模式(非常简短,但应该解释发生了什么):

Widget:
   Id int not null identity(1,1) primary key
   IsNeeded bit not null

DooHickey
   Id int not null identity(1,1) primary key
   WidgetFk int not null references Widget(Id)

使用visual studio中的拖放界面转换为Linq-To-Sql类。

示例:

using(var ctx = GetDataContext()) {
  var dlo = new DataLoadOptions();
  dlo.LoadWith(widget => widget.DooHickeys);
  ctx.LoadOptions = dlo;
  var query = ctx.Widgets.Where(x => x.IsNeeded);

  // The "select * from Widget where IsNeeded = 1" command
  var mainCmd = (SqlCommand)ctx.GetComamnd(query);

  // Want Command for getting the DoHickeys
}

这样可以更轻松地自动为DataContextIQueryable创建SqlDependencies。也许我正在以艰难的方式去做,有人已经解决了这个问题......我接受了第三方工具(请安装NuGet),它不会引入新的依赖关系(如System.Web)。

1 个答案:

答案 0 :(得分:0)

var query = ctx.Widgets.Where(x => x.IsNeeded);

应该是

var query = ctx.Widgets.Where(x => x.IsNeeded == 1);