gpt4 book ai didi

c# - 返回通用实体列表

转载 作者:行者123 更新时间:2023-11-30 19:39:15 26 4
gpt4 key购买 nike

public List<Customer> GetAllCustomers()
{
List<Customer> listOfCustomers = db.Customer.ToList();
return listOfCustomers;
}

我有一个包含三个表(实体)的数据库:Customer、Event 和 Venue。如您所见,我正在返回一个包含 Customers 的列表,但我想知道是否有一种方法可以将列表中的实体作为更通用的东西返回。这将使我不必被迫为所有实体使用单独的 get 方法。

我在网上搜索过,但没有发现任何适用于使用 lamdba 语法的内容。

非常感谢您的帮助!

最佳答案

这应该可以完成工作,只需使用 Set<T> 您上下文的属性:

public List<T> GetEntities<T>() where T : class
{
return db.Set<T>().ToList();
}

但是,您可能希望此函数返回一个 IQueryable<T>而不是 List<T>这样您就可以继续从延迟执行中获益。所以方法变成了:

public IQueryable<T> GetEntities<T>() where T : class
{
return db.Set<T>();
}

然后这样调用它:

List<Customer> listOfCustomers = GetEntities<Customer>();

或使用 IQueryable<T>版本:

IQueryable<Customer> listOfCustomers = GetEntities<Customer>();

您现在可以正确查询:

IQueryable<Customer> allCustomers = listOfCustomers;
List<Customer> onlyBobs = allCustomers
.Where(c => c.Name = "Bob")
.ToList();

关于c# - 返回通用实体列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28563338/

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