У меня есть база данных, созданная с использованием кода. Я обнаружил, что запрос с использованием проекции в конкретный тип, безусловно, является самым быстрым методом, быстрее, чем использование операторов Include
. Однако я столкнулся со следующей проблемой:
dim records=(From record in db.SomeDbSet
Where record.UserID=userID
Select New UserSpecificRecord With
{ .Name=record.User.Name
.Tasks=record.Tasks
}).ToList
Я получаю разные ошибки при выполнении части .Tasks=, начиная от недопустимых исключений приведения до сообщений о том, что Enity Framework не поддерживает такого рода запросы, в зависимости от типа коллекции, которую я создаю для свойства Tasks класса UserSpecificRecord.
Когда я меняю код на:
Dim records= (From record in db.SomeDbSet
Where record.UserID=userID
Select New With
{ .Name=record.User.Name
.Tasks=record.Tasks
}).ToList
dim userRecords=(From record in records
Select New UserSpecificRecord With
{ .Name=record.Name
.Tasks=record.Tasks
}).ToList
то есть: я проектирую анонимный тип, а затем создаю конкретный тип, и все это работает. Я бы очень хотел иметь возможность проецировать на конкретный тип напрямую. Можно ли это сделать?