• EF Core 使用


    1. 新建一个控制台项目,在Visual Studio 中打开 程序包管理控制台,输入:

    Install-Package Microsoft.EntityFrameworkCore
    Install-Package Microsoft.EntityFrameworkCore.Tools
    Install-Package Microsoft.EntityFrameworkCore.SqlServer
    Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

    2. 在 Sql Server 中建立数据库和表

    3. 在控制台项目中新建一个Models文件夹

    4. 在程序包管理控制台输入:

    Scaffold-DbContext "数据库连接字符串" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force -UseDatabaseNames

    5. 在控制台中使用自动生成的 DbContext

    using EFPlus.Models;
    using Microsoft.EntityFrameworkCore;
    using System;
    using System.Diagnostics;
    using System.Linq;
    using System.Threading.Tasks;
     
    namespace EFPlus
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                //GetCount();
                await MultiDeleteWithSql();
     
                stopwatch.Stop();  //停止Stopwatch
                Console.WriteLine("Using Elapsed output runTime:{0}", stopwatch.Elapsed.ToString());//这里使用时间差来输出,如:时:分:秒
     
                Console.WriteLine("Hello World!");
            }
     
            //static void Main(string[] args)
            //{
            //    Stopwatch stopwatch = new Stopwatch();
            //    stopwatch.Start();
     
            //    MultiDelete();
     
            //    stopwatch.Stop();  //停止Stopwatch
            //    Console.WriteLine("Using Elapsed output runTime:{0}", stopwatch.Elapsed.ToString());//这里使用时间差来输出,如:时:分:秒
     
            //    Console.WriteLine("Hello World!");
            //}
     
     
            static void GetCount()
            {
                using (var db = new BlogDbContext())
                {
                    var allblogs = db.Blogs.Count();
                    Console.WriteLine(allblogs);
                }
     
            }
     
            static void MultiDelete()
            {
                using (var db = new BlogDbContext())
                {
                    var allblogs = db.Blogs.ToArrayAsync();
                    db.Blogs.RemoveRange(allblogs.Result);
                    db.SaveChanges();
                }
                
            }
     
            static async Task MultiDeleteAsync()
            {
                using (var db = new BlogDbContext())
                {
                    var allblogs = db.Blogs.ToArrayAsync();
                    db.Blogs.RemoveRange(allblogs.Result);
                    await db.SaveChangesAsync();
                }
            }
     
            /// <summary>
            /// 批量插入
            /// </summary>
            static void MultiInsert()
            {
                using (var db = new BlogDbContext())
                {
                    for (int i = 0; i < 1000000; i++)
                    {
                        var blog = new Blog { Url = "https://www.cnblog.com/p/" + i.ToString() };
                        db.Blogs.Add(blog);
                    }
                    db.SaveChanges();
                }
     
            }
     
            static async Task MultiInsertAsync()
            {
                using (var db = new BlogDbContext())
                {
     
                    for (int i = 0; i < 1000000; i++)
                    {
                        var blog = new Blog { Url = "https://www.cnblog.com/p/" + i.ToString() };
                        db.Blogs.Add(blog);
                    }
                    await db.SaveChangesAsync();
                }
            }
     
            static async Task MultiDeleteWithSql()
            {
                var db = new BlogDbContext();
                var conn = db.Database.GetDbConnection();
                try
                {
                    await conn.OpenAsync();
                    using (var command = conn.CreateCommand())
                    {
                        string query = "delete from blogs where Id<1000001";
                        command.CommandText = query;
                        var rows = await command.ExecuteNonQueryAsync();
                    }
                }
                finally
                {
                    conn.Close();
                }
            }
     
        }
    }

    参考资料:

    https://blog.csdn.net/xingkongtianyuzhao/article/details/102905185

  • 相关阅读:
    jquery插件开发
    五种常见的 PHP 设计模式
    linux常用命令
    解决MySQL不允许从远程访问的方法
    模块化的JavaScript开发的优势在哪里
    巧用C#做中间语言 实现Java调用.net DLL
    PHP Predefined Interfaces 预定义接口
    想追赶.Net的脚步?Java面前障碍重重
    修改一行SQL代码 性能提升了N倍
    如何使用LoadRunner监控Windows
  • 原文地址:https://www.cnblogs.com/maruko/p/15963793.html
Copyright © 2020-2023  润新知