我可以讓我的EF對象只檢索執行的sql中的特定列嗎?如何檢索實體框架中的特定列
如果我有一列包含大量數據,真的會減慢查詢速度,我該如何讓我的對象從生成的sql中排除該列?
如果我的表已經ID(INT),姓名(INT),數據(BLOB),我怎樣才能讓我的查詢是
select Id, Name from TableName
,而不是
select Id, Name, Data from TableName
從下面的建議,我的方法是
public List<T> GetBy<T>(DbContext context,Expression<Func<T, bool>> exp, Expression<Func<T,T>> columns) where T : class
{
return dbContext.Set<T>().Where(exp).Select<T,T>(columns).ToList();
}
我打電話像這樣
List<CampaignWorkType> list = GetBy<CampaignWorkType>(dbContext, c => c.Active == true, n => new { n.Id, n.Name });
我收到了像下面這樣的錯誤。
無法隱式轉換類型 'AnonymousType#1' 到 'Domain.Campaign.CampaignWorkType'
我怎麼能解決這個問題?
我不認爲你可以返回一個匿名類型。 – jrummell
如果你的表有太多的列,導致你的查詢運行速度明顯變慢,那麼你應該重構你的數據庫表。你不能只是從設計師那裏刪除這些專欄? –
如果你不明白,請不要回答。 – tobias