gpt4 book ai didi

c# - 无法完全抽象数据访问方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:32:13 26 4
gpt4 key购买 nike

我将我的数据访问层抽象到一个集中的通用抽象类中,这样我的其他特定类型的类就可以调用通用方法而无需定义实现。

public abstract class _DALMethods<T>
{
public virtual List<T> GetAll()
{
List<T> ents = new List<T>();

using (var db = new Entities())
{
ents = db.tblEmployees.ToList();
}

return ents;
}

public virtual void Add(T obj)
{
using (var db = new Entities())
{
db.tblEmployees.Add(obj);
db.SaveChanges();
}
}
}

我的问题是如何“通用化”对员工表 DbSet 列表的非常具体的调用,尤其是当它需要实例化 EF 实体时。

using (var db = new Entities())
{
ents = db.tblEmployees.ToList();
}

编辑: 我向将要使用的抽象类添加了另一个方法。我将如何为此做同样的事情?

最佳答案

您似乎在寻找 DbContext.Set<T>() 方法:

public virtual List<T> GetAll()
{
using (var db = new Entities())
{
return db.Set<T>().ToList();
}
}

然后:

var dal = new _DALMethods<Employee>();
var employees = dal.GetAll(); // returns a List<Employee>

关于c# - 无法完全抽象数据访问方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20660857/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com