`
zheyiw
  • 浏览: 1020781 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

EF Core

EF 
阅读更多

DBFirst-------------------
Scaffold-DbContext "Data Source=xxx; Initial Catalog=xxx; User ID=xxx; Password=xxx;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models


CodeFrist----------------
1,产生迁移的脚本
Add-Migration init

2,更新数据库
Update-Database

3,产生数据库脚本
Script-Migration
或者 script-migration [From] [To]


//---------------------以下是.Net Framework-----------

一. 模型设计
     1.  遵循EF标准,注意表关系配对
     2.  数据模型里尽量把必须的属性和说明都写全
     3.  EF默认id字段为主键,如果没有,需指定主键
 
二. 数据迁移
     1.  命令运行环境:visual studio工具栏->工具->NuGet 程序包管理器->程序包管理器控制台
     2.  基本命令和常用参数
        >  get-help                  获取帮助的命令(例:get-help Enable-Migrations –detailed)
           –detailed                 详细用法
        >  Enable-Migrations         启用迁移
           -Force                    强制覆盖
           -ProjectName              目标项目(迁移类所在的项目)
           -StartUpProjectName       启动项目(包含数据库连接字符串配置文件所在的项目)
           -ContextTypeName          需要迁移的数据库(类)
           -ConnectionStringName     指定使用配置文件中连接字符串的名称
           -ConnectionString         指定使用的连接字符串
           -ConnectionProviderName   指定连接字符串的provider名称
           -MigrationsDirectory      指定迁移文件的目录(多个数据库,独立自动迁移用)
        >  Add-Migration             为挂起的Model变化添加迁移脚本
           -Force
           -ProjectName
           -StartUpProjectName
           -ConfigurationTypeName    指定使用的迁移配置
           -IgnoreChanges            忽略检测到挂起的model改变,为已有的数据库启用迁移创建一个初始的,空的迁移。
           -ConnectionStringName  
           -ConnectionString      
           -ConnectionProviderName 
        >  Update-Database           将挂起的迁移更新到数据库
           -Force
           -ProjectName
           -StartProjectName
           -ConfigurationTypeName
           -ConnectionStringName 
           -ConnectionString 
           -ConnectionProviderName 
           -SourceMigration          只有-Script打开时才有效。指定迁移的名称用作更新的起点。忽略则使用最后一次应用的迁移。
           -TargetMigration          指定将数据库更新到哪个迁移的名称。
           -Script                   生成SQL脚本
        >  Get-Migrations            获取已经应用的迁移                                   
     3.  迁移操作步骤举例:
             DataBase                       :解决方案中,数据模型层项目名称
             Member                         :解决方案中,启动项的名称
             DataBase.Member.MemberEntities :需要应用数据迁移的数据上下文
         a.  第一次启用迁移,输入命令: 
             Enable-Migrations -ProjectName DataBase -StartUpProjectName Member -ContextTypeName DataBase.Member.MemberEntities 
             并敲回车键,然后打开生成的Migrations文件夹中的Configuration.cs文件, 
             把构造方法中的AutomaticMigrationsEnabled = false;改为AutomaticMigrationsEnabled = true;
             如果有多个数据库,每个库需要独立指定迁移文件,命令格式如下:
             Enable-Migrations -ProjectName DataBase -StartUpProjectName Member -ContextTypeName DataBase.Member.MemberEntities -MigrationsDirectory:MemberMigrations
         b.  模型有改动时,输入命令:add-migration update20150508 -ProjectName DataBase -StartUpProjectName Member -Force并敲回车键,创建迁移脚本
             然后 输入命令:Update-Database -Verbose -ProjectName DataBase -StartUpProjectName Member并敲回车键,执行迁移操作
     4.  配置自动迁移
         在应用程序的入口方法(函数)里注册自动迁移:
         Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataBase.Member.MemberEntities, DataBase.MemberMigrations.Configuration>()); 
         注意:Configuration.cs生成的是internal sealed class,如果不在启动程序集中,则需要修改成public
     5.  脱离visual studio环境做数据库版本迁移,可用migrate.exe,可参考:http://msdn.microsoft.com/zh-cn/data/jj618307
 
三. 注意事项:
     1.  连接字符串不用DBFirst自动生成的那么复杂,采用如下格式即可:
         <add name="MemberEntities" connectionString="server=.;database=Member;integrated security=true;"  providerName="System.Data.SqlClient"/>
     2.  有挂起的Model改变时,会导致操作不正常,注意操作步骤,必要时清理挂起的迁移。
     3.  修正后数据库,里面的数据如果需要调整,用Configuration.cs文件里的Seed方法,示例如下:
        protected override void Seed(DataBase.Member.MemberEntities context)
        {
            var users = new List<User>
            {
                new User { Account = "test",   Password = "123" },
                new User { Account = "admin",   Password = "456" }
            };
            users.ForEach(s => context.Users.AddOrUpdate(p => p.Account, s));
            context.SaveChanges();
        }


分享到:
评论

相关推荐

    net ef core 详细官方中文教程

    EntityFrameworkCore(简称EF Core)是微软推出的一款轻量级的对象关系映射(Object/Relational Mapping,简称ORM)框架,它是EntityFramework(简称EF)的跨平台版本,用于.NET平台。EF Core是.NET Core的一部分,...

    ASP.NET Core 和EF Core官方中文文档

    ASP.NET Core和Entity Framework Core(简称EF Core)是Microsoft开发的两个关键的...通过阅读"ASP.NET Core 2.2.pdf"和"EFCore.pdf",你可以深入了解这两个框架的详细用法和最佳实践,进一步提升你的.NET开发能力。

    .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统.zip

    .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统 .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统 .Net Core3.1 + EF Core + LayUI 封装的MVC版后台管理系统 .Net Core3.1 + EF Core + LayUI ...

    EFCore3.1EF连接达梦8数据库例子.7z

    标题中的"EFCore3.1 EF连接达梦8数据库例子"揭示了这个压缩包内容是关于Entity Framework Core 3.1版本与达梦8数据库之间的连接示例。Entity Framework Core (EF Core) 是一个轻量级、高性能的对象关系映射(ORM)...

    ef core 与 dapper 组合使用demo

    在.NET开发领域,Entity Framework (EF) Core 和 Dapper 是两种常见的ORM(对象关系映射)工具。EF Core 提供了一种高级的、全面的ORM框架,而Dapper则是一个轻量级、高效的数据库访问库。这篇教程将探讨如何将这...

    EFcore Repository 依赖注入方式实现数据库基本操作

    在.NET Core应用中,Entity Framework Core (EF Core) 是一个轻量级、高性能的对象关系映射(ORM)框架,它允许开发者用C#等语言直接操作数据库。依赖注入(Dependency Injection, DI)是一种设计模式,它有助于降低...

    EFCore+WebAPi增删改查

    在本项目中,"EFCore+WebApi增删改查"是一个使用Entity Framework Core(简称EFCore)和Web API技术构建的.NET应用示例。这个框架主要用于演示如何通过Web服务接口进行数据操作,如添加、删除、修改和查询,前端展示...

    EF Core 入门教程

    EF Core是一种适用于.NET开发的数据库ORM(对象关系映射)工具,由Entity Framework团队开发。它为.NET开发人员提供了一种处理数据库的方式,减少了大量的数据访问代码编写。EF Core与早期版本的EF6相比,引入了新的...

    EFCore查询不重复数据Distinct.docx

    在.NET Core开发中,Entity Framework Core (EFCore) 是一个常用的对象关系映射框架,它允许开发者使用C#代码操作数据库。在这个场景中,我们关注的是如何使用EFCore查询不重复的数据并根据特定字段进行排序。`...

    Z.EntityFramework.Extensions.EFCore6.13.1.zip

    《深入理解Z.EntityFramework.Extensions.EFCore6.13.1:多版本支持与BulkInsert功能》 Z.EntityFramework.Extensions是一款针对Entity Framework Core(简称EF Core)的扩展库,它提供了丰富的功能,增强了数据库...

    VS 2019 EF Core Power Tools v2.5.790.vsix

    《深入理解VS 2019与EF Core Power Tools v2.5.790.vsix》 在软件开发的世界中,Visual Studio (VS) 2019 是一款广泛使用的集成开发环境(IDE),它提供了丰富的功能和工具,帮助开发者高效地构建各种应用程序。而 ...

    学习EFCore.pdf

    ### EF Core 简介 Entity Framework Core(简称EF Core)是一个轻量级、可扩展、跨平台的.NET对象关系映射器(ORM)。EF Core 支持多种数据库提供者,并且可以用于.NET Core以及.NET Framework项目。它提供了数据访问...

    【ASP.NET编程知识】C#中efcore-ShardingCore呈现“完美”分表.docx

    "ASP.NET编程知识:C#中efcore-ShardingCore呈现“完美”分表" 本文档主要讲述了如何使用efcore-ShardingCore框架实现“完美”的分表功能。在C#中,efcore-ShardingCore框架提供了强大的分表功能,可以满足各种复杂...

    EFcore连接本地Mysql数据库使用ASP.NET.CORE.API

    1.实现EFcore连接本地Mysql数据库 2.最新版本的ASP.NET.CORE.Web API 3.实现dbfrist和code 。 4.博客链接:https://blog.csdn.net/EAyayaya/article/details/124048491 5. 不是MVC方式 6.Entity Framework Core ...

    EFCore的使用与原理,让你快速掌握并精通

    Entity Framework Core(简称 EFCore)是Microsoft开发的一个流行的.NET对象关系映射(ORM)框架,它是Entity Framework(EF)的跨平台替代品,旨在为.NET应用提供数据库访问能力。EFCore的设计旨在提供一个轻量级、...

    学习C# .Net6+EFcore+MySQL.zip

    在本课程中,我们将深入探讨如何使用C#编程语言与.NET 6框架,结合Entity Framework Core(简称EF Core)和MySQL数据库进行开发。这是一套完整的教程,旨在帮助初学者和有一定经验的开发者掌握现代Web应用程序开发的...

    EF Core 官方指南.pdf

    标题"EF Core 官方指南.pdf"指出这是一份关于Entity Framework Core(简称EF Core)的官方指南,以PDF格式呈现。EF Core是Microsoft开发的一个开源对象关系映射(ORM)框架,用于.NET应用程序,它允许开发者使用面向...

    .Net 常用ORM框架对比(EF Core、FreeSql、SqlSuger)

    **EF Core**(Entity Framework Core)是由微软开发并维护的一款开源ORM框架,它是Entity Framework的轻量化和模块化版本,适用于.NET Core和.NET Framework。EF Core的核心特性包括: 1. **模型第一/代码第一**:...

    Asp.Net Core 3.1 MVC+EF Core +SqlSugar ORM框架实例 多层架构示例Demo

    Entity Framework Core (EF Core) 是微软提供的一种对象关系映射(ORM)框架,适用于.NET Core应用程序。它允许开发者用.NET类和对象来操作数据库,而无需直接编写SQL语句。EF Core支持多种数据库系统,包括SQL ...

Global site tag (gtag.js) - Google Analytics