问题在于这Content_type不是T类的一部分,因为它只是一个类。
正如@tchelidze所说,您可以在函数上设置where子句以指定类型,例如:
public List<T> Get<T>() where T : IYourCommonInterface
{
var list = Context.Set<T>().Where(x => x.Content_type == "Test").Distinct().ToList();
return list;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果您需要完全通用,则可以向函数添加选择器,如下所示:
public List<T> Get<T>(Func<T, object> selector) where T : class
{
var list = Context.Set<T>().Where(x => selector(x) == "Test").Distinct().ToList();
return list;
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
Get(x => x.Content_type);
Run Code Online (Sandbox Code Playgroud)
另外,如果您想走得更远,可以通过整个条件:
public List<T> Get<T>(Func<T, bool> condition) where T : class
{
var list = Context.Set<T>().Where(condition).Distinct().ToList();
return list;
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
Get(x => x.Content_type == "test");
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
1173 次 |
| 最近记录: |