2017-05-31 36 views
1

是否可以在一個專用查詢中禁用實體框架中的代理?我不想影響解決方案的其餘部分。是否有可能在一個實體框架查詢中禁用代理?

我想關閉代理對象並獲取「原生」目標和GoalProgressItem。如何獲得非代理對象。

var goalWithProgressItemsPairs = _dbContext.GoalProgressItems 
    .Include(p => p.Goal) 
    .Where(p => p.Date >= range.From && p.Date <= range.To) 
    .Select(p => 
     new 
     { 
      Goal = p.Goal, 
      ProgressItem = p 
     } 
    ) 
    .ToList(); 
+0

你是什麼意思'本地'和'代理'?你想要發生什麼,你的上面的查詢是(或不)在做什麼? – Igor

+0

@Igor在我的DbContext中,我定義了DbSet 目標。我的意思是「目標」是由我定義的「本地」類型。 查詢返回從目標繼承的代理類型。 – Jacek

回答

1

是否嘗試在調用之前設置_dbContext的Configuration屬性的'ProxyCreationEnabled'屬性? 類似

_dbContext.Configuration.ProxyCreationEnabled = false; 
// Your query 
_dbContext.Configuration.ProxyCreationEnabled = true;