powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF использования свойств с аннатацией NoMapping
5 сообщений из 5, страница 1 из 1
EF использования свойств с аннатацией NoMapping
    #39458934
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Скажите пожалуйста, почему я не могу использовать переменную IsDict в условиях до инициализации ToList()?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
public class Product
{
    public int Id { get; set; }
	
	public int? DictId { get; set; }
    public Dict Dict { get; set; }              

    [NotMapped]
    public bool IsDict
    {
        get { return  Dict != null; }
    }
}

public class ProductMap : EntityTypeConfiguration<Product>
{
    public ProductMap()
    {
        ToTable("Product", "dbo");
        HasKey(a => a.Id);
        Property(a => a.Id).HasColumnName("Id");
        Property(a => a.DictId).HasColumnName("DictId");
    }
}

// Так работает
var q1 = dbcontext.set<Product>().ToList().Where(w => w.IsDict).ToList();

// Так выдает ошибку
var q2 = dbcontext.set<Product>().Where(w => w.IsDict).ToList();
//Error: The specified type member 'IsDict' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported
...
Рейтинг: 0 / 0
EF использования свойств с аннатацией NoMapping
    #39458981
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,
А если добавить
Код: c#
1.
 Ignore(a => a.IsDict);
...
Рейтинг: 0 / 0
EF использования свойств с аннатацией NoMapping
    #39458983
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-dukeNechto,
А если добавить
Код: c#
1.
 Ignore(a => a.IsDict);



Пробовал! Все равно ошибку выдает. :(
...
Рейтинг: 0 / 0
EF использования свойств с аннатацией NoMapping
    #39459027
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так в сообщении же ясно написано почему.

EF не может преобразовать свойство IsDict в выражение для SQL-запроса по понятным причинам (ибо это твоя логика, написанная на шарпе).

ToList выполняет материализацию запроса, после которой это уже не IQueryable, а просто IEnumerable и работает обычный Linq.
...
Рейтинг: 0 / 0
EF использования свойств с аннатацией NoMapping
    #39459656
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProТак в сообщении же ясно написано почему.

EF не может преобразовать свойство IsDict в выражение для SQL-запроса по понятным причинам (ибо это твоя логика, написанная на шарпе).

ToList выполняет материализацию запроса, после которой это уже не IQueryable, а просто IEnumerable и работает обычный Linq.

Спасибо! Что помогли разобраться. Теперь я имею более четкое представление логики отправки запроса ef.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF использования свойств с аннатацией NoMapping
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]