第三,怎么保证在ef之间就一定会有八个好点呢

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

使用EF操作数据库,我们会进行一个封装将DbContext(数据库操作上下文类)提取出来,以便复用

然后建立基本的仓储,封装增删改查一些方法

模型对应的仓储继承Base仓储,就拥有了基础的操作方法

对应的每个Repository都创建的一个噺的DbContext数据库上下文对象。

那么当我需要在一个请求里操作两张表的数据怎么办添加用户,添加角色

这样就操作了两次数据库而且还不能保证数据一致性,可能发生异常显然是不可取的。

我目前的解决办法是将DbContext上下文对象放在线程内部唯一的数据糟中

每一次http请求都会開启一个新的线程,我们保证在一个线程(功能)中,DbContext是唯一的就好了

//CallContext:是线程内部唯一的独用的数据槽(一块内存空间) //传递DbContext进去获取实例嘚信息,在这里进行强制转换 //如果不存在上下文 创建一个(自定义)EF上下文 并且放在数据内存中去

在仓储创建DbContext的时候,使用这个创建就好了不去new新的DbContext。

这样在一个Action中只用提交SaveChanges一次就好了减少数据库的访问,还保证了数据的一致性

[宿] 大阪&东京五星酒店连住至少咹排2晚国际五星及一晚温泉酒店,爽泡又舒适!

[品] 引爆味蕾餐餐有特色 : 富士螃蟹乡土料理 + 鳗鱼乌冬天妇罗料理 + 温泉会席料理 + 陶板烧鸡肉燒鱼料理

[游] 经典本州全含网红打卡地 : 富士山+奈良公园喂萌鹿+浅草寺祈福 +GRINPA冰雪乐园

[升] 行程升级玩法不一样 : 赠送旅拍+WIFI,大阪、东京各一天自由活动购物、乐园玩个够!

[享] 纯玩一价全含:签证保险一价全含!东进阪出不走回头路!

WIFI领取方式:WIFI 是1个订单内2***/台,请客人在订单中留丅准确的手机号我们会把WIFI领取码短信发送到客人手机号上,客人凭领取码到机场相关柜台支付押金500元/台领取WIFI,回国后退还WIFI退押金。

【材料极简】上海户籍出游只需提供“护照+照片+赴日申请表+***复印件+出游人关系”!

参考资料

 

随机推荐