dhl: Linq to Entity 数据访问对象DataContext不能用静态的。和数据库数据不同步。

Linq to Entity  数据访问对象DataContext  和SqlHelper还是不一样。 SqlHelper 的静态方法中每次都是

using (SqlConnection conn = new SqlConnection(connectionString)) 实例。

DAL层:

Code

 

原来代码:DAL.UserShopDAL 数据操作为静态的。也就是DataContext是静态的,这样的话,Linq更新数据后,再读出数据的时候就还是旧数据。

因为DataContext里面有数据,就不再和数据库连接。注意Linq这时在查DataContext里面的数据。

Code

 

原因:DataContext为静态,第二次查的时候由于没有new所以里面含有第一次的数据,查询出来就还是原来的数据。

 

解决方案:

每次查询时候new就可以。

1.可以在BLL的每个方法中new  UserInfoDAL(); 

2. 添加工厂类CreateDALFactory 来集中管理:

 

Code

 

BLL的方法中改为:

Code

你可能感兴趣的:(context)