Entity Framework, не отображаемое свойство в запросеC#

Место общения программистов C#
Ответить
Anonymous
 Entity Framework, не отображаемое свойство в запросе

Сообщение Anonymous »

Я создаю модель сущности, в которую хочу поместить несопоставленные свойства. Эти свойства предназначены для упрощения доступа к значениям из отношений. Показанная модель представляет собой простой пример.
Изображение


В сущности 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»