0

我正在通过以下方式访问我班级的静态列表:

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

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

它可以工作,但为了使其更多地由数据驱动,我想做这样的事情,同时尽可能保持属性静态(伪代码):

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

我想利用myDbContextin 属性并从数据库中传递数据而不是硬编码列表。

有没有办法在不实例化的myDbContext情况下利用属性中的实例Foo

4

1 回答 1

1

将其更改为方法怎么样?

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);
}
于 2013-06-30T12:03:05.447 回答