Приветствую.
Осваиваю BLToolkit
Делаю по-сценарию:
public class GoodsDatabase : DbManager
{
public Table<Good> Good { get { return GetTable<Good>(); } }
}
[TableName("goods")]
public abstract class Good : EditableObject<Good>
{
[Identity, PrimaryKey]
public abstract int GID { get; set; }
[MapField("title")]
public abstract String Title { get; set; }
}
Пытаюсь линком выбрать записи:
using (var db = new GoodsDatabase())
{
var sw = new Stopwatch();
sw.Start();
db.SetCommand("SELECT title FROM goods WHERE GID != 1");
var list = db.ExecuteScalarList<String>();
sw.Stop();
Console.WriteLine("Time 1: " + sw.ElapsedMilliseconds);
sw.Reset();
sw.Start();
var goods = db.Good.Where(el => el.GID != 1).ToList();
sw.Stop();
Console.WriteLine("Time 2 : " + sw.ElapsedMilliseconds);
Console.ReadKey();
}
Получаю вывод:
Time 1: 197
Time 2: 5071
Запускал десятки раз в debug/release — время LINQа всегда около 5 секунд.
Почему так и как сделать, что бы было быстро?