我正在尝试创建一个通用方法来获取由date属性排序的最新项目。如下所示:
public async Task<DateTime> GetLatestModifiedDateAsync<T>() where T : new()
{
var result = await db.Table<T>()
.OrderByDescending(e => e.OrderedProperty)
.FirstOrDefaultAsync();
return result.ModifiedAt;
}
这显然不起作用,因为在泛型类型上找不到属性OrderedProperty
,但我该如何才能使其正常工作?
答案 0 :(得分:5)
如果您确定所有T都有OrderedProperty
属性,只需创建一个界面
interface IHaveOrderedProperty
{
int OrderedProperty { get ; }
}
并强制T
为IHaveOrderedProperty
public async Task<DateTime> GetLatestModifiedDateAsync<T>()
where T : IHaveOrderedProperty, new()