У меня возникла следующая проблема. Я пытаюсь использовать инструкцию 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;
}
}
Есть ли кто-нибудь, кто может мне помочь?