我是 c# 新手,现在对泛型和实体框架有点困惑。我在数据库中有两个表,我使用实体框架在我的代码中检索它们。在我的 aspx 页面上,我有一个网格,它应该根据用户选择的表填充数据。
将来会有更多的桌子。所以我想写一个工厂模式来获取数据网格的源列表。我不能让它工作,因为我很困惑。
这是我的 BaseClass 和两个子类的代码。
static class Factory
{
public static ReportBase GetReport(string name)
{
switch (name)
{
case "Child1":
return new Child1();
case "Child2":
return new Child1();
default:
return null;
}
}
}
//Base Class
class ReportBase<T>
{
public List<T> _list;
public abstract void Load();
public abstract List<T> Filter(DateTime statrtDate, DateTime endDate);
}
//Child 1
class Child1 : ReportBase
{
public List<GetChild1> _list;
public Child1(){}
public override void Load()
{
//GetChild1 is the name of database table
var info = from p in Context.GetChild1 select p;
_list = info.ToList();
}
public List<GetChild1> Filter(DateTime startDate, DateTime endDate)
{
var filteredValues = from p in _list where p.UploadedDate <= startDate select p;
return filteredValues.ToList();
}
}
//Child 2
class Child2 : ReportBase
{
public List<GetChild2> _list;
public Child2() { }
public override void Load()
{
//GetChild2 is the name of database table
return (from p in Context.GetChild2 select p).ToList();
}
public List<GetChild2> Filter(DateTime startDate, DateTime endDate)
{
return (from p in _list where p.UploadedDate <= startDate select p).ToList();
}
}
有人可以相应地更正代码吗?我必须在这里使用泛型吗?我尝试在 BaseClass 中使用它,但它不能正常工作,因为我必须相应地修复我的子类,对此我一无所知。