EntityFramework.Extended 支持 mysql

举报
清雨小竹 发表于 2022/09/25 00:55:42 2022/09/25
【摘要】 1.安装EntityFramework.Extended 或者  Z.EntityFramework.Plus.EF6(推荐)  2.更改MyDBContext配置 namespace EntityFrameworkCore{ [DbConfigurationType(...

1.安装EntityFramework.Extended 或者  Z.EntityFramework.Plus.EF6(推荐)

 2.更改MyDBContext配置


  
  1. namespace EntityFrameworkCore
  2. {
  3. [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
  4. public class MyDBContext : DbContext
  5. {
  6. public MyDBContext()
  7. :base("name=Default")
  8. {
  9. //新增配置
  10. Database.SetInitializer<MyDBContext>(null);
  11. }
  12. //新增配置(Z.EntityFramework.Plus.EF6不需要)
  13. protected override void OnModelCreating(DbModelBuilder modelBuilder)
  14. {
  15. modelBuilder.HasDefaultSchema("");
  16. base.OnModelCreating(modelBuilder);
  17. }
  18. public DbSet<User> User { set; get; }
  19. //...................
  20. }
  21. }

3.Global.asax中注册扩展


  
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data.Entity;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.Http;
  7. using System.Web.Mvc;
  8. using System.Web.Optimization;
  9. using System.Web.Routing;
  10. namespace YFAPICommon
  11. {
  12. public class WebApiApplication : System.Web.HttpApplication
  13. {
  14. protected void Application_Start()
  15. {
  16. AreaRegistration.RegisterAllAreas();
  17. GlobalConfiguration.Configure(WebApiConfig.Register);
  18. FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
  19. RouteConfig.RegisterRoutes(RouteTable.Routes);
  20. BundleConfig.RegisterBundles(BundleTable.Bundles);
  21. EfExtendedRegister();
  22. }
  23. //注册扩展(Z.EntityFramework.Plus.EF6不需要)
  24. private void EfExtendedRegister()
  25. {
  26. var container = new EntityFramework.Container();
  27. EntityFramework.Locator.RegisterDefaults(container);
  28. container.Register<EntityFramework.Batch.IBatchRunner>(() => new EntityFramework.Batch.MySqlBatchRunner());
  29. EntityFramework.Locator.SetContainer(container);
  30. }
  31. }
  32. }

4.使用


  
  1. //注:Delete和Update之后不用再dbContext.SaveChanges();
  2. dbContext.User.Where(u => u.id == 1).Delete();
  3. dbContext.User.Where(u => u.id == 1).Update(u=>new User { nickName="my name"});

  
  1. //Z.EntityFramework.Plus.EF6
  2. public object future()
  3. {
  4. //三个值在一次SQL查询中获得,提高查询效率
  5. var query = dbContext.User.Future();
  6. var datalist = query.ToList();
  7. int count = query.Count();
  8. var data = query.FirstOrDefault();
  9. return new { datalist, count, data };
  10. }

  
  1. //FromCache
  2. QueryCacheManager.ExpireAll();//清空缓存
  3. dbContext.User.FromCache().ToList();//从缓存读取

文档:

https://github.com/zzzprojects/EntityFramework.Extended

https://entityframework-plus.net/?z=ef-extended

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/119783080

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。