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; }
}

我发现了异常:

在“Where”移动服务查询表达式“Convert(prnt).Id”中不支持成员“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 回答