簡體   English   中英

在實體框架中訪問 Model

[英]Access to Model in Entity Framework

我們有這樣的實體 model 的static屬性的想法是什么?

public class Repository{

       private static KiaNetEntities entities = null;
       public static KiaNetEntities{
           get{ return entities; }
       }

       static Repository(){
           entities = new KiaNetDbEntities();
       }
}

並像這樣使用它:

public static Customers[] GetCustomers(){
     var q = from c in KiaNetEntities.Customers where c.Activated select c;
     return q.ToArray();
}

public static Customers[] AddToCustomerSalary(int customerId, decimal newValue){
     var q = from c in KiaNetEntities.Customers 
     where c.Activated && c.ID == customerId
     select c;

     if(q.Count() > 0){
              var customer = q.First();
              customer.Salary += newValue;
              KiaNetEntities.SaveChanges();
     }
}

問題是什么? 其中有很多 - 這里描述了一些,您可以再添加一個 - EF 類不是線程安全的,因此在 web 應用程序中的所有請求之間共享單個上下文將會下地獄。 上下文及其內部不是無狀態的,因此簡單地共享它們是非常糟糕的主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM