我正在通过以下方式访问我班级的静态列表:
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();
}
}
}
我想在属性中使用myDbContext
并传递数据库中的数据而不是硬编码列表。
有没有办法在没有实例化myDbContext
的情况下使用属性中的Foo
实例?
答案 0 :(得分: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);
}