而不是像这样向每个类添加搜索方法;
public List<InvoiceDetail> SearchById(int Id)
{
return db.Query<InvoiceDetail>()
.Where(x => x.Id == Id)
.ToList();
}
如何向这样的基类添加方法;
public virtual List<T> SearchById(int Id)
{
return db.Query<T>()
.Where(x => x.Id == Id)
.ToList();
}
“ T不包含ID的定义”
因为ID是详细信息实体的定义。
答案 0 :(得分:2)
您可以通过创建一个基类来实现此目的:
public class BaseEntity
{
public int Id { get; set; }
}
然后使适当的实体类从BaseEntity
继承为:
public class Detail : BaseEntity
{
//some props for Detail class only
}
现在,对于您的搜索方法,您可以将where T : class
约束用作:
public List<T> SearchById<T>(int id) where T : BaseEntity
{
return db.Query<T>()
.Where(x => x.Id == Id)
.ToList();
}