Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架中模型的访问_C#_Asp.net Mvc 2_Entity Framework 4_Data Access Layer - Fatal编程技术网

C# 实体框架中模型的访问

C# 实体框架中模型的访问,c#,asp.net-mvc-2,entity-framework-4,data-access-layer,C#,Asp.net Mvc 2,Entity Framework 4,Data Access Layer,我们有这样的实体模型的静态属性的想法有什么问题 public class Repository{ private static KiaNetEntities entities = null; public static KiaNetEntities{ get{ return entities; } } static Repository(){ entities = new KiaNetDbEn

我们有这样的实体模型的
静态
属性的想法有什么问题

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应用程序中的所有请求之间共享单个上下文是非常糟糕的。上下文及其内部不是无状态的,因此简单地共享它们是非常糟糕的主意。

不确定您的问题是什么。为什么方法
GetCustomers
AddToCustomerSalary
是静态的?