如何在使用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
}
这样可以更轻松地自动为DataContext
和IQueryable
创建SqlDependencies。也许我正在以艰难的方式去做,有人已经解决了这个问题......我接受了第三方工具(请安装NuGet),它不会引入新的依赖关系(如System.Web)。
答案 0 :(得分:0)
var query = ctx.Widgets.Where(x => x.IsNeeded);
应该是
var query = ctx.Widgets.Where(x => x.IsNeeded == 1);