Linq to entities Ado Net数据服务开始执行问题 public void metodoX() { foreach(列表中的TURNO t Persona) { DataServiceQuery查询= General.Entities.VST_CANTIDAD_PERSONAS_POR_DIA.Where( z=>z.ID\U盘==t.ID\U盘 &&z.FE_CALE>=RadDatePicker1.SelectedDate.Value &&z.FE_CALE

Linq to entities Ado Net数据服务开始执行问题 public void metodoX() { foreach(列表中的TURNO t Persona) { DataServiceQuery查询= General.Entities.VST_CANTIDAD_PERSONAS_POR_DIA.Where( z=>z.ID\U盘==t.ID\U盘 &&z.FE_CALE>=RadDatePicker1.SelectedDate.Value &&z.FE_CALE,linq-to-entities,wcf-data-services,astoria,Linq To Entities,Wcf Data Services,Astoria,在调用Where()时捕获了迭代器变量“t”,这是一个lambda表达式: public void metodoX() { foreach (TURNO t in listaTurnoPersona) { DataServiceQuery<VST_CANTIDAD_PERSONAS_POR_DIA> query = General.Entities.VST_CANTIDAD_PERSONAS_POR_DIA.Where( z

在调用Where()时捕获了迭代器变量“t”,这是一个lambda表达式:

public void metodoX()
{ 
 foreach (TURNO t in listaTurnoPersona)
 {
  DataServiceQuery<VST_CANTIDAD_PERSONAS_POR_DIA> query = 
    General.Entities.VST_CANTIDAD_PERSONAS_POR_DIA.Where(
                    z => z.ID_TURN == t.ID_TURN 
                        && z.FE_CALE >= RadDatePicker1.SelectedDate.Value
                        && z.FE_CALE <= RadDatePicker1.SelectedDate.Value.AddDays(6)) 
    as DataServiceQuery<VST_CANTIDAD_PERSONAS_POR_DIA>;
  query.BeginExecute(ProcesarHorarioPersonasTurno, query);
  //HERE THE ID_TURN CHANGE 1, 2, 3 , 4 ...
 }
}

public void ProcesarHorarioPersonasTurno(IAsyncResult result)
{
            List<VST_CANTIDAD_PERSONAS_POR_DIA> listaDias = (result.AsyncState as   DataServiceQuery<VST_CANTIDAD_PERSONAS_POR_DIA>).EndExecute(result).ToList();
         //HERE ALWAYS I GET THE RESULT IDTURN = 1}
当查询执行时,它们都引用了相同的“t”,在您的例子中,这是循环终止前的最终值。换句话说,它们都获得了相同的t.ID\u TURN值,在您的示例中是“1”

要正确执行此操作,请声明一个新变量:

Where( z => z.ID_TURN == t.ID_TURN && z.FE_CALE ...
var id=t.id\u回合;
DataServiceQuery query=General.Entities.VST\u CANTIDAD\u PERSONAS\u POR\u DIA
.其中(z=>z.ID\u TURN==ID&&
z、 FE_CALE>=RadDatePicker1.SelectedDate.Value&&

z、 FE_CALE在调用Where()时捕获了迭代器变量“t”,这是一个lambda表达式:

public void metodoX()
{ 
 foreach (TURNO t in listaTurnoPersona)
 {
  DataServiceQuery<VST_CANTIDAD_PERSONAS_POR_DIA> query = 
    General.Entities.VST_CANTIDAD_PERSONAS_POR_DIA.Where(
                    z => z.ID_TURN == t.ID_TURN 
                        && z.FE_CALE >= RadDatePicker1.SelectedDate.Value
                        && z.FE_CALE <= RadDatePicker1.SelectedDate.Value.AddDays(6)) 
    as DataServiceQuery<VST_CANTIDAD_PERSONAS_POR_DIA>;
  query.BeginExecute(ProcesarHorarioPersonasTurno, query);
  //HERE THE ID_TURN CHANGE 1, 2, 3 , 4 ...
 }
}

public void ProcesarHorarioPersonasTurno(IAsyncResult result)
{
            List<VST_CANTIDAD_PERSONAS_POR_DIA> listaDias = (result.AsyncState as   DataServiceQuery<VST_CANTIDAD_PERSONAS_POR_DIA>).EndExecute(result).ToList();
         //HERE ALWAYS I GET THE RESULT IDTURN = 1}
当查询执行时,它们都引用了相同的“t”,在您的例子中,这是循环终止前的最终值。换句话说,它们都获得了相同的t.ID\u TURN值,在您的示例中是“1”

要正确执行此操作,请声明一个新变量:

Where( z => z.ID_TURN == t.ID_TURN && z.FE_CALE ...
var id=t.id\u回合;
DataServiceQuery查询=General.Entities.VST_CANTIDAD_PERSONAS_POR_DIA
.其中(z=>z.ID\u TURN==ID&&
z、 FE_CALE>=RadDatePicker1.SelectedDate.Value&&

z、 有了这个,现在result.AsyncState URL正在更改ID\u TURN值(之前我总是只得到最后一个值(128M))

但是
EndExecuteResult
仍在返回
listaDia[0]。ID\u TURN=1

{http://localhost:888/Services/WebDataServiceSiata.svc/VST_CANTIDAD_PERSONAS_POR_DIA()?$filter=((**ID_TURN eq 21M**) and (FE_CALE ge datetime'2009-07-20T00:00:00-05:00')) and (FE_CALE le datetime'2009-07-26T00:00:00-05:00')}

这样,现在result.AsyncState URL正在更改ID_TURN值(之前我总是只得到最后一个值(128M))

但是
EndExecuteResult
仍在返回
listaDia[0]。ID\u TURN=1

{http://localhost:888/Services/WebDataServiceSiata.svc/VST_CANTIDAD_PERSONAS_POR_DIA()?$filter=((**ID_TURN eq 21M**) and (FE_CALE ge datetime'2009-07-20T00:00:00-05:00')) and (FE_CALE le datetime'2009-07-26T00:00:00-05:00')}

我发现返回的实体VST_CANTIDAD_PERSONAS_POR_DIA只创建了一次!(当第一次调用该方法时);我认为这可能是因为模型在另一个项目中,或者因为我使用的是实体框架扩展


顺便说一句,我现在注册了,很抱歉我添加了一个答案,但我可以评论或编辑另一篇文章。

我发现返回的实体VST\u CANTIDAD\u PERSONAS\u POR\u DIA只创建了一次!(第一次调用该方法时);我认为这可能是因为模型在另一个项目中,或者因为我使用实体框架扩展


顺便说一句,我现在注册了,很抱歉我添加了一个答案,但我可以评论或编辑另一篇文章。

很抱歉,浏览器关闭了,因为我没有注册,所以我无法编辑第一个问题。好的。但是你的处理人(ProcesarHorarioPersonasTurno)被调用了四次,是吗?你不希望第一次处理程序调用包含所有结果,对吗?(不得不问——如果这很明显,很抱歉。)实际上是128次,在128次处理过程中,Idj-Turn方法是相同的,我可以看到结果。AcsicStand查询现在正在改变,但是EntestCurt正在返回相同的结果。抱歉,丹尼斯,我不知所措。如果我想了什么,稍后我会添加一个新的注释。同时,考虑注册……让事情变得更简单,更多的人更有可能回答你的问题。:-)对不起,浏览器关闭了,因为我没有注册,所以我无法编辑第一个问题。好的..但是你的处理程序(ProcesarHorarioPersonasTurno)被调用了四次,是吗?你不希望第一个处理程序调用包含所有结果,对吗?(不得不问——如果这是显而易见的,我很抱歉。)实际上是128次,在128次处理过程中,Idj-Turn方法是相同的,我可以看到结果。AcsicStand查询现在正在改变,但是EntestCurt正在返回相同的结果。抱歉,丹尼斯,我不知所措。如果我想了什么,稍后我会添加一个新的注释。同时,考虑注册……使事情变得更容易,更多的人更可能回答您的问题。:-)问题是我全局创建了实体,现在我在foreach中实例化了一个新实体并最终工作。问题是我全局创建了实体,现在我在foreach中实例化了一个新实体并最终工作。