【问题标题】:Method with dynamic return value to get all rows from a specific table具有动态返回值的方法,用于从特定表中获取所有行
【发布时间】:2016-09-26 08:40:33
【问题描述】:

我的班级中有许多以下方法用于数据访问:

public IEnmuerable<Customer> GetAllCustomer()
{
    return MyEFContext.tblCustomer;
}

public IEnmuerable<Company> GetAllCompanies()
{
    return MyEFContext.tblCompany;
}

public IEnmuerable<Car> GetAllCars()
{
    return MyEFContext.tblCar;
}

...

有没有办法定义一个具有动态返回值的方法,该方法为我提供特定表中的所有行。这样我就可以这样称呼:

List<Customer> allCustomers = GetAll<Customer>().ToList();

我搜索了很多,但没有发现任何有用的东西。我的最后一个代码是这样的,但它也失败了:

public IEnumerable<T> GetAll<T>()
{
    return MyEFContext.Set<T>();
}

【问题讨论】:

    标签: c#-4.0 entity-framework-5 data-access-layer


    【解决方案1】:

    经过多次尝试和错误,这是我的解决方案:

    public IEnumerable<T> GetAll<T>()
    {
        return MyEFContext.Set(typeof(T)) as IEnumerable<T>;
    }
    

    现在我可以像这样调用这个方法:

    List<Customer> allMyCustomers = GetAll<Customer>().ToList();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 2021-12-28
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多