Я пытаюсь загрузить свойства навигации для объекта, но в случае отсутствия навигационного свойства или свойства NULL мой запрос возвращает NULL
Я хочу, чтобы он только возвращал свойства навигации с сохраненными фактическими значениями, а не с NULL
. Ниже приведен фрагмент того, что я имею до сих пор, в основном я получаю список свойств навигации в объекте «Пользователь», затем включаю каждую, но в некоторых записях для RoleId установлено значение Null, что делает мой запрос возвращаемым NULL
public async Task<T> FindSingleAsync(Expression<Func<T, bool>> predicate)
{
var query = _table.AsQueryable()
.AsNoTracking()
.Where(predicate);
foreach (var prop in Context.Model.FindEntityType(typeof(T)).GetNavigations().Where(x => x != null))
{
query = query.Include(prop.Name);
}
return await query.FirstOrDefaultAsync().ConfigureAwait(false);
}
// Пример таблицы
public class User{
public int UserId {get; set; }
public Role Role {get; set;}
public int? RoleId {get; set;} //In database has NULL value
public Group Group {get; set;}
public int? GroupId {get; set;} //In database has value of 1
}
~ Пользователь ~
| UserId | RoleId | GroupId |
| 1 | NULL | 1 |
| 2 | 2 | 4 |
Редактировать То же запрос работает для пользователя с идентификатором 2 и не выполняется для пользователя с идентификатором 1