我维护一个API,它根据对人员列表的请求,根据请求返回不同的结果集.例如,某些API客户端希望获取人员列表和他们的交互列表,其他人希望获得人员和他们的元数据列表.所有这些都可以在请求返回人员的API方法时指定.
这似乎不起作用:
using (var dbcontext = new ExampleEntities())
{
var query = dbcontext.People.AsQueryable();
//determined in earlier application logic based on request
if(includeMetadata)
{
query = query.Include("metadata");
}
//determined in earlier application logic based on request
if(includeInteractions)
{
query = query.Include("interactions");
}
/* ...SNIP... */
}
Run Code Online (Sandbox Code Playgroud)
我不想做的是:
var query = dbcontext.People.Include("Metadata").Include("interactions");
Run Code Online (Sandbox Code Playgroud)
即使请求的API客户端不需要它们,这意味着每个获取一个人的请求都将包括所有相关实体.
我也不想编写每种可能的逻辑组合:
if(includeMetadata && includeInteractions)
{
var query = dbcontext.People.Include("Metadata").Include("interactions");
}
else if(includeMetadata)
{
var query = dbcontext.People.Include("Metadata");
}
else if(includeInteractions)
{
var query = dbcontext.People.Include("Interactions");
}
else
{
var …Run Code Online (Sandbox Code Playgroud) 我在我设置的每个平面文件连接器上收到以下错误.平面文件连接器是在数据流任务中从ADO.NET设置的
数据流任务时出错[Flat File Destination 11 [1230]]:Flat File Destination 11的输入列数.Inputs [Flat File Destination Input]不能为零.
数据流任务[SSIS.Pipeline]出错:"平面文件目标11"验证失败并返回验证状态"VS_ISBROKEN".
数据流任务[SSIS.Pipeline]出错:一个或多个组件验证失败.
数据流任务出错:任务验证期间出错.
我已经验证输入中有列,如下所示:

我的数据流看起来像

元数据看起来合适

列映射
