访问静态属性中的数据库上下文

本文关键字:数据库 上下文 静态 属性 访问 | 更新日期: 2023-09-27 18:20:22

我以以下方式访问类上的静态列表:

public class Foo
{
    public static List<long> myList = new List<long>() { 1,2,3 }
}

using(EfEntities myDbContext = new EfEntities())
{
    var bar = Foo.myList;
}

它是有效的,但为了让它更受数据驱动,我想做这样的事情,同时尽可能保持属性静态(psuedo代码):

public class Foo
{
    public static List<long> myList
    {
        get
        {
            return dbContext.SomeTable.Where(x => x == 1).ToList();
        }
    }
}

我想使用属性中的myDbContext,并从数据库传递数据,而不是硬编码列表。

是否有任何方法可以在不实例化Foo的情况下使用属性中的myDbContext实例?

访问静态属性中的数据库上下文

把它改成一个方法怎么样?

public class Foo
{
    public static List<long> GetList(EfEntities dbContext)
    {
        return dbContext.SomeTable.Where(x => x == 1).ToList();
    }
}

并使用它;

using(EfEntities myDbContext = new EfEntities())
{
    var bar = Foo.GetList(myDbContext);
}