
В сущности user_roles с именем UserRole я хочу иметь свойство UserName и RoleName.
public class UserRole
{
public int Id { get; set; }
public int IdUser { get; set; }
public int IdRole { get; set; }
public User User { get; set; }
public Role Role { get; set; }
[NotMapped]
public string UserName
{
get { return User.Name; }
}
[NotMapped]
public string RoleName
{
get { return Role.Name; }
}
}
Мне это важно для будущей фильтрации, привязки данных и т.п. Я не настаиваю на таком решении. Это всего лишь первая идея.
На данный момент, если я попытаюсь фильтровать объекты по имени пользователя или имени роли, у меня возникнет исключение, поскольку свойства NotMapped не существуют в базе данных.
Во-вторых, получение значения свойств после удаления DbContext. На данный момент я использую метод .Include() (стремительная загрузка), но можно ли получить обе вышеуказанные функции (filterint и т. д., а также значения быстрой загрузки) одним способом?
Редактировать 1:
Я использую стратегию создания модели Code First.
Редактировать 2:
Хорошо, чтобы уточнить, самый простой ответ — создать фильтр такой метод
public IQueryable Filter(IQueryable query, string userName, string roleName)
{
return query.Where(x => x.User.Name.Contains(userName) && x.Role.Name.Contains(roleName));
}
Подробнее здесь: https://stackoverflow.com/questions/325 ... y-in-query
Мобильная версия