проблема linq запроса - PullRequest
0 голосов
/ 26 января 2012

Ниже приведен код, в котором я пытаюсь выполнить простой каркасный запрос Linq-to-entity, а также хочу получить доступ к результатам по одному:

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 цикл?

Ответы [ 2 ]

0 голосов
/ 27 января 2012

Похоже, вы работаете с WCF Ria Services в Silverlight.Это полностью отличается от того, как все работает при непосредственном использовании 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 и содержать нужные данные.1009 * Надеюсь, это поможет

0 голосов
/ 26 января 2012

Вы уверены, что там есть данные?

Попробуйте это:

inctDomainContext innn = new inctDomainContext();  
bool exxAny = innn.cordonnes.Any();

Тогда, если exxAny равно false, в коллекции нет данных и, следовательно, foreach ничего не делает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...