Код: Выделить всё
public class Foo
{
public string Field1 { get; set; }
public string Field2 { get; set; }
}
Код: Выделить всё
public class Bar : Foo
{
public string Field3 { get; set; }
}
Код: Выделить всё
IQueryable queryable = OurDbContext.Foo.FromSqlRaw(someSQl)
.AsNoTracking()
.Select(x => new Bar()
{
Field1 = x.Field1
Field2 = x.Field2
Field3 = null // null for now, we'll fill it in later
});
Но что я Как видите, в ту секунду, когда мы создаем IQueryable, он выполняет SQL (упс, я был неправ, просто медленно). Мы хотим использовать IQueryable с отложенным выполнением, чтобы мы могли пропускать или принимать 100 записей за раз через графический интерфейс.
Но создание IQueryable происходит медленно — что воняет.
РЕДАКТИРОВАТЬ:
Что я заметил, так это то, что во время отладки требуется 10-15 секунд, чтобы выполню одну строку кода выше, но если я сделаю это (нет .Select), это произойдет мгновенно (даже не за секунду):
Код: Выделить всё
IQueryable queryable = OurDbContext.Foo.FromSqlRaw(someSQl)
.AsNoTracking();
Подробнее здесь: https://stackoverflow.com/questions/788 ... s-slow-why