linq, использующий свойство, состоящее из нескольких свойств

#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