zoukankan      html  css  js  c++  java
  • Entity Frameworkn Extended 支持 Mysq

    EntityFramework Extended 是EF的扩展,可以批量删除或更新数据表 ,非常方便

    例: 以下代码 为批量删除 f01字段>=3的记录

     myContent db = new myContent();
     db.Tbl01.Where(o => o.f01 >= 3).Delete();
     db.SaveChanges();

    结果: 在MSSQL中能正常执行, 但换到Mysql后就不行了.

    Git:   https://github.com/loresoft/EntityFramework.Extended.git

    根据错误提示检查源码发现, 生成的SQL语句 完全是按MSSQL来生成的. 原本以为Extended不支持Mysql,查看源码才知道原本就是支持Mysql的. 只是在生成SQL语句的时候默认是按MSSQL来生成而已.

    程序做如下修改

    1. 表名的数据库架构前缀默认为 dbo, 需在DbContext类中将默认的数据库架构改为空

        public class myContent : DbContext
        {
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.HasDefaultSchema("");
                base.OnModelCreating(modelBuilder);
            }
    
    //    ......
    
    
        }

    2. 列名,表名均用 [ ]  括起来, 在program.cs 最前端插入以下代码

          [STAThread]
            static void Main()
            {
                
                EntityFramework.Container container = new EntityFramework.Container();
                EntityFramework.Locator.RegisterDefaults(container);
                container.Register<EntityFramework.Batch.IBatchRunner>(() => new EntityFramework.Batch.MySqlBatchRunner());
                EntityFramework.Locator.SetContainer(container);
    
            ......
    
         }
  • 相关阅读:
    技术一定要动手做一遍才算自已的
    终于提离职了,感觉如释重负
    自我评定与学习计划
    MYSQL---INSERT...SELECT...
    MYSQL---LIMIT
    SQL---having
    MYSQL---数据定义
    CSS---Block和inline元素对比
    CSS---清除浮动
    T-SQL---分页语句
  • 原文地址:https://www.cnblogs.com/jerron/p/5092417.html
Copyright © 2011-2022 走看看