2013-06-21 67 views
3

當我使用的代碼與通用:移動服務查詢例外

var parenttable = MobileService.GetTable<TParent>(); 
    var testid = await parenttable.Where(prnt => prnt.Id == 20).ToListAsync(); 

其中TParent:IEnity

public interface IEnity 
{ 
    int Id { get; set; } 
} 

我捕捉到了異常:

成員 'ID' 不支持'Where'移動服務查詢表達式'Convert(prnt).Id'。

但是,如果我改變了通用輸入:

var parenttable = MobileService.GetTable<Category>(); 
    var testid = await parenttable.Where(prnt => prnt.Id == 20).ToListAsync(); 

我有正常的結果。 爲什麼?我怎樣才能使用泛型?

回答

5

知道這是一個老問題,但答案是,你必須告訴這個泛型類型也是一個類。

where T : class, IEnity 
+0

謝謝!這對我來說非常合適! –