У меня есть три сущности Role
, RoleUser
и User
Фильтр связанные объекты или навигации собственности, где есть присоединиться к таблице в Entity Framework 6
Я хочу, чтобы выбрать каждый обязательный Role
и загрузить соответствующие User
«S, где RoleUser.RecordID
в таблица объединения равна заданному значению.
Использование UOW и GenericReposiity Get(...)
метод, который я бы назвал ...
.Get(role => role.Compulsory == true, null, "RoleUser.User")
выбрать все обязательную роль и впоследствии загружены все User
для навигации RoleUser.User
.
Как я могу их фильтровать, можно ли использовать реализованный метод Get()
?
Сущности
public class Role
{
public int RoleID { get; set; }
public bool Compulsory { get; set; }
public virtual IList<RoleUser> RoleUser { get; set; }
}
public class RoleUser
{
public string UserID { get; set; }
public virtual User User { get; set; }
public Guid RecordID { get; set; }
public virtual Record Record { get; set; }
public int RoleID { get; set; }
public virtual Role Role { get; set; }
}
public class User
{
public string userID { get; set; }
}
Получить
public virtual IList<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "")
{
IQueryable<TEntity> query = dbSet;
if (filter != null)
{
query = query.Where(filter);
}
foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
if (orderBy != null)
{
return orderBy(query).ToList();
}
else
{
return query.ToList();
}
}