Я пытаюсь связать список из модели с моделью представления.
Вот моя модель:
public class Instruction
{
public int ID { get; set; }
public List<string> Target { get; set; }
public bool Delete { get; set; }
public List<string> DeleteLines { get; set; }
public string SpecificLine { get; set; }
public Insert InsertType { get; set; }
public string Insert { get; set; }
public MigrationPart? Part { get; set; }
}
Модель представления идентична. Я пытаюсь связать это так:
var instructions = myDbContext.Instructions;
var model = instructions.Select(i => new InstructionView
{
Target = i.Target,
Delete = i.Delete,
DeleteLines = i.DeleteLines,
SpecificLine = i.SpecificLine,
InsertType = i.InsertType,
Insert = i.Insert,
Part = i.Part
});
return View("MigrationsList", model);
Однако, когда я пытаюсь отобразить его, я получаю сообщение об ошибке:
The specified type member 'Target' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported
Каков правильный подход к этому?
обновил вопрос





Сначала материализуйте запрос:
var instructions = myDbContext.Instructions.ToList();
ToList фактически переносит все записи вашей базы данных в память. После этого вы делаете сопоставление между Entity и ViewModel.
Если вы не добавите ToList, Select на самом деле попытается перевести в SQL. Поскольку запрос SQL, сгенерированный Entity Framework, не может получить список целых чисел и сопоставить его с вашим классом, возникает это исключение.
Можете ли вы показать нам больше кода? Как вы получаете
instructions?