5

ジェネリックでコードを使用する場合:

    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' Mobile Services クエリ式 'Convert(prnt).Id' ではサポートされていません。

しかし、ジェネリックを次のように変更すると、次のようになります。

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

私は正常な結果を持っています。なんで?そして、どのようにジェネリックを使用できますか?

4

1 に答える 1

9

これは古い質問ですが、答えは、このジェネリック型もクラスであることを伝えなければならないということです。

where T : class, IEnity
于 2014-02-11T22:52:06.823 に答える