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
是静态的?