В настоящее время я работаю с приложением служб WCF, и мы создали объектный контекст Entity Framework для каждого запроса. В запросах структуры сущностей мы использовали механизм Complied Query, однако ожидаемая производительность не может быть достигнута в данный момент. Я подозреваю, что это связано с природой контекста объекта (на основе запроса), так как запрашиваемый Complied зависит от контекста объекта. Это так?
Пример кода
private static readonly Func<MyContext, IQueryable<Order>> _compiledObjectQuery = CompiledQuery.Compile<MyContext, IQueryable<Order>>(
(ctx) => from Order in ctx.Orders
.Include("OrderType")
.Include("OrderLines")
select Order
);
protected override IQueryable<Order> OrderQuery
{
get { return _compiledObjectQuery.Invoke(Context); }
}
Создание контекста
public OPDbContext DbContext
{
get
{
if(_dbConext == null)
{
_dbConext = new OPDbContext(Context, true);
}
return _dbConext;
}
}
Замок используется для внедрения контекста объекта в базу запросов