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();
}
}
}
我想利用的,並從數據庫傳遞數據而不是硬編碼列表。
有什麼辦法可以在屬性中使用myDbContext
實例,而不需要實例化Foo
?
謝謝,我想這是解決它的最好方法。但讓我們說,我有10種方法;有什麼方法可以在不傳遞給所有10種方法的情況下使用上下文? – Johan
@Johan你可以在'HttpContext.Items'中註冊上下文,並從屬性裏面獲取它,但如果這是你需要的,那麼以一種好的方式做這件事可能是一個新問題的材料。我可能會創建一個可處理的類來爲你註冊/取消註冊/處理,並且一個靜態方法從'HttpContext'獲得當前的'EfEntities'上下文,如果這有任何意義的話:) –