【发布时间】:2017-03-07 15:03:11
【问题描述】:
我有一个使用 ADO.NET 实体数据模型生成的类的数据库第一个项目。我所有的课程都有相同的布尔和日期时间字段,确定和日期。我想创建用于从 DbContext 检索 T 类的通用方法,但我不确定如何在该查询中使用 where,因为我无法访问 Ok 和 Date 字段。
注意:我无法更改生成的类,并且我想避免使用 Linq.Dynamic
ADO.Net 生成
public partial class First
{
public int Id { get; set; }
public string NameFirst { get; set; }
public DateTime Date { get; set; }
public bool Ok { get; set; }
}
public partial class Second
{
public int Id { get; set; }
public string NameSecond { get; set; }
public DateTime Date { get; set; }
public bool Ok { get; set; }
}
检索数据
public List<SomeModel> LoadFromDatabase<T>(bool ok, DateTime date)
{
var dbData = DbContext.Set(typeof(T)).AsNoTracking().Where(x => x.Ok ??? );
//remap to some model and return it
...
return someModel;
}
编辑 1:
public List<SomeModel> LoadFromDatabase<T>(bool ok, DateTime date) where T : IDateOk
{
var dbData = DbContext.Set(typeof(T)).AsNoTracking().Where(x => x.Ok &&);
//remap to some model and return it
...
return someModel;
}
public interface IDateOk {
DateTime Date { get; set; }
bool Ok { get; set; }
}
编辑 2: 我在方法中缺少类,所以应该是这样的
public List<SomeModel> LoadFromDatabase<T>(bool ok, DateTime date) where T : class IDateOk
【问题讨论】:
标签: c# entity-framework dbcontext ef-database-first