EntityFramework.Extended 支持 mysql

本文档介绍了如何安装和配置EntityFramework.Extended库,以及如何在.NET项目中使用它来执行批量删除、更新和查询操作。通过示例展示了在Global.asax中注册扩展,并提供了使用Delete、Update方法和FromCache、Future方法提高查询效率的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 2.更改MyDBContext配置

namespace EntityFrameworkCore
{
    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class MyDBContext : DbContext
    {
        public MyDBContext()
            :base("name=Default")
        {
            //新增配置
            Database.SetInitializer<MyDBContext>(null);
        }
        
        //新增配置(Z.EntityFramework.Plus.EF6不需要)
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.HasDefaultSchema("");
            base.OnModelCreating(modelBuilder);
        }

        public DbSet<User> User { set; get; }
        
        //...................
    }
}

3.Global.asax中注册扩展

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;

namespace YFAPICommon
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            EfExtendedRegister();
        }

        //注册扩展(Z.EntityFramework.Plus.EF6不需要)
        private void EfExtendedRegister()
        {
            var container = new EntityFramework.Container();
            EntityFramework.Locator.RegisterDefaults(container);
            container.Register<EntityFramework.Batch.IBatchRunner>(() => new EntityFramework.Batch.MySqlBatchRunner());
            EntityFramework.Locator.SetContainer(container);
        }
    }
}

4.使用

//注:Delete和Update之后不用再dbContext.SaveChanges();

dbContext.User.Where(u => u.id == 1).Delete();

dbContext.User.Where(u => u.id == 1).Update(u=>new User { nickName="my name"});
//Z.EntityFramework.Plus.EF6
public object future()
{
    //三个值在一次SQL查询中获得,提高查询效率
    var query = dbContext.User.Future();
    var datalist = query.ToList();
    int count = query.Count();
    var data = query.FirstOrDefault();
    return new { datalist, count, data };
}
//FromCache
QueryCacheManager.ExpireAll();//清空缓存
dbContext.User.FromCache().ToList();//从缓存读取

文档:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值