EF 6.0使用小计

---恢复内容开始---

最近尝试了下EF Extended,但是居然需要EF6.0以上,没办法,只能安装了,打开解决方案,选择库程序包管理下的程序包管理控制台(或者直接右击你需要使用扩展的解决方案选管理NuGet程序包),也不废话了,直接装上。

 

使用简单的三层结果,在DAL层装上了extended扩展,点开引用一看,好家伙,引入了三个dll,一个是EntityFramework,一个EntityFramework.Extended,一个是EntityFramework.SqlServer,没弄明白他为啥需要引入.SqlServer?

 

用EF PowerTools工具生成了Model,在web层处理好了config,如下

 1     <configSections>
 2         <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
 3     </configSections>
 4 
 5   <entityFramework>
 6     <contexts>
 7       <context disableDatabaseInitialization="true" type="Hwapu.CTB.DAL.CTBContext">
 8       </context>
 9     </contexts>
10     <providers>
11       <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
12     </providers>
13   </entityFramework>

开始处理批量更新了,随便写了一个

using (CTBContext db = new CTBContext())
{
        //var topicList = db.TUserWrongTopics.Where(r => r.TopicId == topicId);
        //int state = db.TUserWrongTopics.Update(topicList, u => new TUserWrongTopic { IsDelete = 1 });//Method 1 Obsolete
        //int state = db.TUserWrongTopics.Update(q => q.TopicId == topicId, q => new TUserWrongTopic { IsDelete = 1 });//Method 2 Obsolete
        int state = db.TUserWrongTopics.Where(r => r.TopicId == topicId).Update(r => new Model.TUserWrongTopic { IsDelete = 1 });
        return state;
}

最后执行的时候居然报错,在实例化Context的时候居然说没有找到注册需要的ADO.NET 的SqlClient,奇怪,后面找了相关资料,发现需要在web层重新引用一下EntityFramework.SqlServer,奇怪,不知道这是VS的bug还是什么,在DAL层不是应用了吗,还需要重新引用一次?

后面用自己的dll测试了一下,发现无论在哪个地方调用。都能够正常,不需要在web层重新引入,奇怪的问题。难道EF6不再加入.net framework之后就必须在调用的地方引入SqlServer?在5.0时是不需要引入Sql,升级之后EF添加了对Oracle,mySql,DB2之后必须要声明对数据库的调用的引用。

---恢复内容结束---

转载于:https://www.cnblogs.com/yukunjie/p/4042571.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值