Как проверить, пуст ли SimpleList или SimpleRecord

У меня возникла следующая проблема. Я пытаюсь использовать инструкцию With или WithMany для получения связанного списка ролей деловых отношений через внешнее соединение. В базе данных существует ссылочная целостность, но первичный ключ в таблице ролей является составным ключом. Вот почему я использую предложение OuterJoin, потому что в противном случае я получаю исключение.

Когда запрос выполняется, результаты точно такие, как я ожидал, и хорошо заполнены данными. Тем не менее, есть определенные случаи, когда в базе данных еще нет доступных ролей. Поэтому я ожидаю, что в этих случаях возвращаемый SimpleList (роли ниже) будет нулевым, потому что данные недоступны. Вместо этого Simple.Data возвращает SimpleLIst, и если я разверну динамическое представление в отладке, то он говорит: «Пусто: дополнительная информация об этом объекте не может быть обнаружена». Даже если я пройду дальше и получу первый объект в SimpleList, он даже возвращает SimpleRecord с той же информацией, что и выше в отладке.Только после того, как я запрашиваю свойство SimpleRecord, я получаю некоторую информацию о том, что запись была пустой, потому что тогда она возвращает null.

Подводя итог... есть ли кто-нибудь, кто может сказать мне, как проверить, является ли SimpleList или SimpleRecord пустым или нулевым, не спускаясь по иерархии?

Я использую Simple.Data 0.16.1.0 (из-за политики я пока не могу использовать бета-версию)

Заранее спасибо за прочтение всей истории...

Ниже приведен пример кода:

dynamic businessRelationRoles;

var query = db.Zakenrelaties.As("BusinessRelations")
   .All()
   .OuterJoin(db.Zakenrelaties_Rollen.As("Roles"), out businessRelationRoles)
   .On(zr_ID: db.Zakenrelaties.zr_ID)
   .With(businessRelationRoles);

foreach (var relation in query)
{
   //Get the SimpleList as IEnumerable
   IEnumerable<dynamic> roles = relation.Roles;

   //Get the first available SimpleRecord
   var role = roles.First();

   //Check if any record was returned..This passes always?? Even if the SimpleList was empty
   if (role != null)
   {
       //Get the id of the role. returns null if SimpleRecord was empty
       var roleId = role.zrro_id;
   }
}

Есть ли кто-нибудь, кто может мне помочь?


person Remco Koedoot    schedule 02.05.2012    source источник


Ответы (1)


С опозданием и исключительно для информации, это была ошибка, и она была исправлена ​​в выпуске 0.17 (также известном как 1.0-RC0).

person Mark Rendle    schedule 18.07.2012