我開始與EF,並有這個問題,當我想有一個投影在LINQ到實體查詢投影和調用方法,「指定類型成員'成員'不支持在LINQ to實體」
原始實體
public class RealClass {
public int Id {get; set;}
public string Description {get; set;}
public decimal ValueOne {get; set;}
public decimal ValueTwo {get; set;}
// Other 100 properties..
public decimal TotalValue {
get
{
return this.ValueOne + this.ValueTwo; // It's an example, in my real object it is a little more complex and involves more properties
}
}
}
也有,我有這樣的事情:
public class LittleClass {
public int LittleId {get; set;}
public string LittleDescription {get; set;}
public decimal LittleTotalValue {get; set;}
}
,並在我的倉庫,我想要做這樣的事情:
public IList<LittleClass> GetAllLittleClass {
return myContext.Set<RealClass>().AsNotracking().Select(x => new LittleClass
{
LittleId = x.Id,
LittleDescription = x.Description ,
LittleTotalValue = x.TotalValue // Here is the error!
}).ToList();
}
而且我得到以下錯誤
指定的類型成員「總價值」在LINQ是不支持的實體。只有初始化,實體成員和實體導航屬性都支持
現在的問題是:
有什麼辦法,我可以使用從RealClass的財產總價值在至極我無法獲得全部的RealClass屬性然後進行投影? (這是不好的,因爲該實體是巨大的,我只需要在網格中顯示3列)。
謝謝!
PS:對不起我的英語!
我知道你的意思,但我不希望調用AsEnumerable()因爲這樣,查詢將從數據庫中獲取所有數據,並且我只需要這四個屬性在一個只讀的網格中顯示。 – Ricardo
@Ricardo:然後你可以使用兩個'select'子句;一個在服務器上,另一個在客戶端上。 – SLaks
你能給我一些小例子嗎?我正在嘗試,但無濟於事 – Ricardo