当使用LoadWith选项运行时,我如何获取用于取回子记录的查询的SqlCommand?
假设有这样一个模式(非常速记,但应该可以解释正在发生的事情):
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变得更容易。也许我正在用一种很难的方式来做这件事,而有人已经解决了这个问题……我会接受一个没有引入新依赖项(比如System.Web)的第三方工具(请安装NuGet)。
发布于 2013-11-26 01:04:05
var query = ctx.Widgets.Where(x => x.IsNeeded);应该是
var query = ctx.Widgets.Where(x => x.IsNeeded == 1);https://stackoverflow.com/questions/20198815
复制相似问题