mie*_*oor 1 c# sqlite generics
我正在尝试创建一个通用方法来获取由date属性排序的最新项目.类似于以下内容:
public async Task<DateTime> GetLatestModifiedDateAsync<T>() where T : new()
{
var result = await db.Table<T>()
.OrderByDescending(e => e.OrderedProperty)
.FirstOrDefaultAsync();
return result.ModifiedAt;
}
Run Code Online (Sandbox Code Playgroud)
这显然不起作用,因为在OrderedProperty
泛型类型上找不到属性,但我怎样才能使其工作?
如果您确定所有T都具有OrderedProperty
属性,只需创建一个界面即可
interface IHaveOrderedProperty
{
int OrderedProperty { get ; }
}
Run Code Online (Sandbox Code Playgroud)
并迫使T
作为IHaveOrderedProperty
public async Task<DateTime> GetLatestModifiedDateAsync<T>()
where T : IHaveOrderedProperty, new()
Run Code Online (Sandbox Code Playgroud)