下面是我尝试做一个简单的Linq-to-entities框架查询的代码,我想逐个访问结果:
inctDomainContext innn = new inctDomainContext();
var exx = from c in innn.cordonnes select c;
foreach (var i in exx) {
//doing something here but the programe doesn't enter the loop
}
为什么程序不进入foreach
循环?
答案 0 :(得分:0)
你确定那里有数据吗?
试试这个:
inctDomainContext innn = new inctDomainContext();
bool exxAny = innn.cordonnes.Any();
如果exxAny
为false
,则集合中没有数据,因此foreach
不执行任何操作。
答案 1 :(得分:0)
您似乎正在使用Silverlight中的WCF Ria服务。这与直接使用EntityFramework时的工作方式完全不同。在您的情况下,您必须“加载”数据,然后才能访问它。
为此,您必须在域上下文中调用“Load”方法并传入您需要的查询(在您的情况下为GetCoordonneQuery()
),然后您可以传递回调以在加载异步调用完成。回调将有权访问查询结果。这是一个例子:
....
context.Load(GetCoordonneQuery(),OnLoadCoordonneCompleted,null)
....
void OnLoadCoordonneCompleted(LoadOperation<Coordonne> loadOp)
{
foreach(var coordonne in loadOp.Entities)
{
//do something with the data
}
}
当调用OnLoadCoordonneCompleted
时(即:当异步加载调用完成时),将加载context.Coordonnes并包含您想要的数据。
希望这有帮助