#entity-framework #linq
#entity-framework #linq
Вопрос:
Я использую EF6, и мне было интересно, есть ли возможность использовать свойство, состоящее из нескольких других реквизитов, например:
class Student{
public int age;
public string name;
public int class;
public string ComplexProp {
get { return name age; }
}
}
students.Where(x => x.class = 4 amp;amp; x.ComplexProp == "myname5")
имя, возраст, класс находятся в базе данных. ComplexProp — нет. Я видел другие вопросы, которые были похожи, но немного отличались, и я хотел бы знать, как это сделать, и если это невозможно, какие другие альтернативы я могу использовать.
может быть, его можно «сохранить» запрос x => x.name x.age
и использовать позже?
Комментарии:
1. Обычно запрос LINQ к БД переводится на язык запросов (обычно SQL) и отправляется в компонент database engine для обработки. Драйвер LINQ не знает, как преобразовать произвольный метод C # в SQL. Вам понадобится вычисляемый столбец в вашей таблице на стороне SQL или используйте что-то вроде LinqKit для создания
Expression<Func<>>
того, чтобы LinqKit мог расширяться встроенным.2.Существует несколько способов: github.com/StefH/Linq .PropertyTranslator.Ядро github.com/axelheer/nein-linq