EF6 CodeFirst代码迁移笔记

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 由于EF7只支持codefirst only。朕无奈被微软逼上了梁山学一下codefirst,就算是为明年做准备吧。写的这些网上大致都有,基本没啥 新内容, 迁移 使用自动迁移 Enable-Migrations –EnableAutomaticMigrations    第一次迁移 Enable-Migrations     修改表结构 Add-Migration 将基于您已经对模型所做的更改构建下一次迁移的框架。
    由于EF7只支持codefirst only。朕无奈被微软逼上了梁山学一下codefirst,就算是为明年做准备吧。写的这些网上大致都有,基本没啥 新内容,

迁移

使用自动迁移
Enable-Migrations –EnableAutomaticMigrations 
 
第一次迁移
Enable-Migrations
 
 
修改表结构
  • Add-Migration 将基于您已经对模型所做的更改构建下一次迁移的框架。
  • Update-Database 将所有挂起的更改应用到数据库。
除非确有需要,否则我们要避免使用 Add-Migration,而且我们的重点是让 Code First 迁移自动计算和应用更改。让我们使用  Update-Database 来进行 Code First 迁移,并将更改推送到模型,直至数据库。
  Update-Database –Verbose 
 
 
其实 Add-Migration对我来说就是在Migrations里面生成一个迁移类,这个类标记了对于上一个代码版本的模型更改。
 Update-Database 成功的话会在数据库生成一个表或在这个表里面添加一个新的数据。[MigrationId]就是Add-Migration后面我们自定义的名称。[ContextKey]应该是Configuration的完全限定命名。[Model]是模型的元数据。[ProductVersion]代表使用的EF版本
 
 
 
 

删除数据库

如果要一直回滚到空数据库,可以使用  Update-Database –TargetMigration: $InitialDatabase 命令。
 

回溯数据库

Update-Database –TargetMigration: TargetMigrationName(迁移命名)
但是回溯到旧数据库的话可能会有一个问题。我旧的迁移生成某一个表,但是这个表对应的实体类现在已经被我删了,那怎么办呢?
 

命令异常:

  Update-Database –Verbose 出现
无法将数据库更新为与当前模型匹配,因为存在挂起的更改并且禁用了自动迁移。将挂起的模型更改写入基于代码的迁移或启用自动迁移。将 DbMigrationsConfiguration.AutomaticMigrationsEnabled 设置为 true 以启用自动迁移。
您可使用 Add-Migration 命令将挂起的模型更改写入基于代码的迁移。
出现这个错是因为我增加了一个表,要先 Add-Migration然后 Update-Database –Verbose 
 
Add-Migration InitialCreate –IgnoreChanges
无法生成显式迁移,因为以下显式迁移处于待定状态: [201412050831298_AddUser]。请先应用待定的显式迁移,然后再尝试生成新的显式迁移。
这时要先 Update-Database –Verbose 
 

关于迁移到MYSql的问题

首先,配置方式按照官方的(http://dev.mysql.com/doc/connector-net/en/connector-net-entityframework60.html)来写,一步都不能少,否则绝壁报错。
一些错误:

此操作要求连接到“master”数据库。无法创建与“master”数据库之间的连接,这是因为已打开原始数据库连接,并且已从连接字符串中删除凭据。请提供未打开的连接。 

上面这个是连接配置不干净。迁移到mssqlsever上去了

The underlying provider does not support the type 'nvarchar(max)'.

这个也是项目的配置或dll有问题,排查一遍配置,然后清理,迁移
System.IO.FileLoadException: 未能加载文件或程序集“MySql.Data, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖项。

找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
这个是mysql.entity依赖项目MySql.Data类型不匹配,当初我手贱把MySql.data升级到最新版6.9就会这样,但实际上他的依赖项目不支持。但是显示的时候,nuget依赖项只会要求最低版本限制而没有最高版本限制,所以生成没问题,运行的时候报错,解决方案:
Install-Package MySql.Data   -Version 6.8.3 

 

未找到用于反序列化“MySql.Data.Types.MySqlConversionException”类型的对象的构造函数。

这个是因为我迁移的时候数据库添加了datetime字段,造成既有数据的datetime为zero datetime((00/00/0000 00:00).我的解决方案是truncate表.
或者连接字符串末尾加上
Allow Zero Datetime=true

  第二种我没试过.还有,我列举的这种异常出现的原因具有特殊性,不具有代表性.

更改表主键的时候,提示表不存在 

这主要是 DropPrimaryKey这个方法引起的.
为了省事我就手动自己改数据库表了,因为一直无法迁移.但是这样查询的时候,会引发下面一个问题

支持“XXXX”上下文的模型已在数据库创建后发生更改

这是因为刚才我们没有迁移成功.这时候,把刚才迁移的那个DbMigration类的up和down方法全注释掉,然后Update-Database –Verbose 就可以了.verbose可免.

参考链接:

Entity Framework 6 中 Code First 的好处

Code First Migrations: Making __MigrationHistory not a system table
 

【迁移】—Entity Framework实例详解

 

如何让EF在创建数据库时不生成__MigrationHistory表

 

 请教EF中Timestamp列的使用

 

解决C#获取SQL的timestamp类型到程序中为byte[]类型的问题

 http://www.cnblogs.com/oppoic/p/ef_databasegeneratedoption_timestamp_concurrencycheck_complextype.html

 

附录:nuget关于code first 迁移命令的帮助 

 

 

名称 

Enable-Migrations 

摘要 

Enables Code First Migrations in a project. 

语法 

Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-MigrationsDirectory <String>] [-ProjectName <String>] [-StartUpProjectName <String>] [-ContextProjectName <String>] [-ConnectionStringName <String>] [-Force] [-ContextA 
ssemblyName <String>] [-AppDomainBaseDirectory <String>] [<CommonParameters>] 

Enable-Migrations [-ContextTypeName <String>] [-EnableAutomaticMigrations] [-MigrationsDirectory <String>] [-ProjectName <String>] [-StartUpProjectName <String>] [-ContextProjectName <String>] -ConnectionString <String> -ConnectionProviderName < 
String> [-Force] [-ContextAssemblyName <String>] [-AppDomainBaseDirectory <String>] [<CommonParameters>] 

说明 

Enables Migrations by scaffolding a migrations configuration class in the project. If the 
target database was created by an initializer, an initial migration will be created (unless 
automatic migrations are enabled via the EnableAutomaticMigrations parameter). 

参数 

-ContextTypeName <String> 
Specifies the context to use. If omitted, migrations will attempt to locate a 
single context type in the target project. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-EnableAutomaticMigrations [<SwitchParameter>] 
Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration. 
If omitted, automatic migrations will be disabled. 

是否必需? False 
位置? named 
默认值 False 
是否接受管道输入? false 
是否接受通配符? False 

-MigrationsDirectory <String> 
Specifies the name of the directory that will contain migrations code files. 
If omitted, the directory will be named "Migrations". 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ProjectName <String> 
Specifies the project that the scaffolded migrations configuration class will 
be added to. If omitted, the default project selected in package manager 
console is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-StartUpProjectName <String> 
Specifies the configuration file to use for named connection strings. If 
omitted, the specified project's configuration file is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ContextProjectName <String> 
Specifies the project which contains the DbContext class to use. If omitted, 
the context is assumed to be in the same project used for migrations. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionStringName <String> 
Specifies the name of a connection string to use from the application's 
configuration file. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionString <String> 
Specifies the the connection string to use. If omitted, the context's 
default connection will be used. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionProviderName <String> 
Specifies the provider invariant name of the connection string. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-Force [<SwitchParameter>] 
Specifies that the migrations configuration be overwritten when running more 
than once for a given project. 

是否必需? False 
位置? named 
默认值 False 
是否接受管道输入? false 
是否接受通配符? False 

-ContextAssemblyName <String> 
Specifies the name of the assembly which contains the DbContext class to use. Use this 
parameter instead of ContextProjectName when the context is contained in a referenced 
assembly rather than in a project of the solution. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-AppDomainBaseDirectory <String> 
Specifies the directory to use for the app-domain that is used for running Migrations 
code such that the app-domain is able to find all required assemblies. This is an 
advanced option that should only be needed if the solution contains several projects 
such that the assemblies needed for the context and configuration are not all 
referenced from either the project containing the context or the project containing 
the migrations. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

<CommonParameters> 
此 Cmdlet 支持常见参数: Verbose、Debug、 
ErrorAction、ErrorVariable、WarningAction、WarningVariable、 
OutBuffer、PipelineVariable 和 OutVariable。有关详细信息,请参阅 
about_CommonParameters ( http://go.microsoft.com/fwlink/?LinkID=113216)。

示例 1

C:\PS>Enable-Migrations 

# Scaffold a migrations configuration in a project with only one context 

示例 2 

C:\PS>Enable-Migrations -Auto 

# Scaffold a migrations configuration with automatic migrations enabled for a project 
# with only one context 

示例 3

C:\PS>Enable-Migrations -ContextTypeName MyContext -MigrationsDirectory DirectoryName 

# Scaffold a migrations configuration for a project with multiple contexts 
# This scaffolds a migrations configuration for MyContext and will put the configuration 
# and subsequent configurations in a new directory called "DirectoryName" 

备注 


备注 
若要查看示例,请键入: "get-help Enable-Migrations -examples". 
有关详细信息,请键入: "get-help Enable-Migrations -detailed". 
若要获取技术信息,请键入: "get-help Enable-Migrations -full".
 
 

 

名称 

Add-Migration 

摘要 

Scaffolds a migration script for any pending model changes. 

语法 

Add-Migration [-Name] <String> [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [-IgnoreChanges] [-AppDomainBaseDirectory <String>] [<CommonParameters>] 

Add-Migration [-Name] <String> [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] -ConnectionString <String> -ConnectionProviderName <String> [-IgnoreChanges] [-AppDomainBaseDirectory <String>] [<CommonParamet 
ers>] 

说明 

  Scaffolds a new migration script and adds it to the project.

参数 

-Name <String> 
Specifies the name of the custom script. 

是否必需? True 
位置? 1 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-Force [<SwitchParameter>] 
Specifies that the migration user code be overwritten when re-scaffolding an 
existing migration. 

是否必需? False 
位置? named 
默认值 False 
是否接受管道输入? false 
是否接受通配符? False 

-ProjectName <String> 
Specifies the project that contains the migration configuration type to be 
used. If omitted, the default project selected in package manager console 
is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-StartUpProjectName <String> 
Specifies the configuration file to use for named connection strings. If 
omitted, the specified project's configuration file is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConfigurationTypeName <String> 
Specifies the migrations configuration to use. If omitted, migrations will 
attempt to locate a single migrations configuration type in the target 
project. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionStringName <String> 
Specifies the name of a connection string to use from the application's 
configuration file. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionString <String> 
Specifies the the connection string to use. If omitted, the context's 
default connection will be used. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionProviderName <String> 
Specifies the provider invariant name of the connection string. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-IgnoreChanges [<SwitchParameter>] 
Scaffolds an empty migration ignoring any pending changes detected in the current model. 
This can be used to create an initial, empty migration to enable Migrations for an existing 
database. N.B. Doing this assumes that the target database schema is compatible with the 
current model. 

是否必需? False 
位置? named 
默认值 False 
是否接受管道输入? false 
是否接受通配符? False 

-AppDomainBaseDirectory <String> 
Specifies the directory to use for the app-domain that is used for running Migrations 
code such that the app-domain is able to find all required assemblies. This is an 
advanced option that should only be needed if the solution contains several projects 
such that the assemblies needed for the context and configuration are not all 
referenced from either the project containing the context or the project containing 
the migrations. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

<CommonParameters> 
此 Cmdlet 支持常见参数: Verbose、Debug、 
ErrorAction、ErrorVariable、WarningAction、WarningVariable、 
OutBuffer、PipelineVariable 和 OutVariable。有关详细信息,请参阅 
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216)。

示例 1

  C:\PS>Add-Migration First
   
    # Scaffold a new migration named "First"

示例 2 

 C:\PS>Add-Migration First -IgnoreChanges
   
    # Scaffold an empty migration ignoring any pending changes detected in the current model.
    # This can be used to create an initial, empty migration to enable Migrations for an existing
    # database. N.B. Doing this assumes that the target database schema is compatible with the
    # current model.

示例 3

 

备注 

若要查看示例,请键入: "get-help Add-Migration -examples".
    有关详细信息,请键入: "get-help Add-Migration -detailed".
    若要获取技术信息,请键入: "get-help Add-Migration -full".

 

 

名称 

 Update-Database

摘要 

Applies any pending migrations to the database.

语法 

 Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [-AppDomainBaseDirectory <String>] [<Common
    Parameters>]
   
    Update-Database [-SourceMigration <String>] [-TargetMigration <String>] [-Script] [-Force] [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] -ConnectionString <String> -ConnectionProviderName <String> [-AppDomainBaseD
    irectory <String>] [<CommonParameters>]

说明 

 Updates the database to the current model by applying pending migrations.

参数 

-SourceMigration <String> 
Only valid with -Script. Specifies the name of a particular migration to use 
as the update's starting point. If omitted, the last applied migration in 
the database will be used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-TargetMigration <String> 
Specifies the name of a particular migration to update the database to. If 
omitted, the current model will be used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-Script [<SwitchParameter>] 
Generate a SQL script rather than executing the pending changes directly. 

是否必需? False 
位置? named 
默认值 False 
是否接受管道输入? false 
是否接受通配符? False 

-Force [<SwitchParameter>] 
Specifies that data loss is acceptable during automatic migration of the 
database. 

是否必需? False 
位置? named 
默认值 False 
是否接受管道输入? false 
是否接受通配符? False 

-ProjectName <String> 
Specifies the project that contains the migration configuration type to be 
used. If omitted, the default project selected in package manager console 
is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-StartUpProjectName <String> 
Specifies the configuration file to use for named connection strings. If 
omitted, the specified project's configuration file is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConfigurationTypeName <String> 
Specifies the migrations configuration to use. If omitted, migrations will 
attempt to locate a single migrations configuration type in the target 
project. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionStringName <String> 
Specifies the name of a connection string to use from the application's 
configuration file. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionString <String> 
Specifies the the connection string to use. If omitted, the context's 
default connection will be used. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionProviderName <String> 
Specifies the provider invariant name of the connection string. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-AppDomainBaseDirectory <String> 
Specifies the directory to use for the app-domain that is used for running Migrations 
code such that the app-domain is able to find all required assemblies. This is an 
advanced option that should only be needed if the solution contains several projects 
such that the assemblies needed for the context and configuration are not all 
referenced from either the project containing the context or the project containing 
the migrations. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

<CommonParameters> 
此 Cmdlet 支持常见参数: Verbose、Debug、 
ErrorAction、ErrorVariable、WarningAction、WarningVariable、 
OutBuffer、PipelineVariable 和 OutVariable。有关详细信息,请参阅 
about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216)。

示例 1

  C:\PS>Update-Database      
    # Update the database to the latest migration     
    

示例 2 

    C:\PS>Update-Database -TargetMigration Second      
    # Update database to a migration named "Second"
    # This will apply migrations if the target hasn't been applied or roll back migrations
    # if it has

示例 3

      C:\PS>Update-Database -Script      
    # Generate a script to update the database from it's current state  to the latest migration     

示例4

 C:\PS>Update-Database -Script -SourceMigration Second -TargetMigration First
   
    # Generate a script to migrate the database from a specified start migration
    # named "Second" to a specified target migration named "First"
    

示例5

  C:\PS>Update-Database -Script -SourceMigration $InitialDatabase
   
    # Generate a script that can upgrade a database currently at any version to the latest version.
    # The generated script includes logic to check the __MigrationsHistory table and only apply changes
    # that haven't been previously applied.

示例6

 C:\PS>Update-Database -TargetMigration $InitialDatabase
   
    # Runs the Down method to roll-back any migrations that have been applied to the database

备注 

若要查看示例,请键入: "get-help Update-Database -examples".
    有关详细信息,请键入: "get-help Update-Database -detailed".
    若要获取技术信息,请键入: "get-help Update-Database -full".
 

 

 

 

 

 

名称 

 Get-Migrations

摘要 

Displays the migrations that have been applied to the target database.

语法 

Get-Migrations [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] [-ConnectionStringName <String>] [-AppDomainBaseDirectory <String>] [<CommonParameters>]
   
    Get-Migrations [-ProjectName <String>] [-StartUpProjectName <String>] [-ConfigurationTypeName <String>] -ConnectionString <String> -ConnectionProviderName <String> [-AppDomainBaseDirectory <String>] [<CommonParameters>]
    

说明 

  Displays the migrations that have been applied to the target database.
    

参数 

-ProjectName <String> 
Specifies the project that contains the migration configuration type to be 
used. If omitted, the default project selected in package manager console 
is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-StartUpProjectName <String> 
Specifies the configuration file to use for named connection strings. If 
omitted, the specified project's configuration file is used. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConfigurationTypeName <String> 
Specifies the migrations configuration to use. If omitted, migrations will 
attempt to locate a single migrations configuration type in the target 
project. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionStringName <String> 
Specifies the name of a connection string to use from the application's 
configuration file. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionString <String> 
Specifies the the connection string to use. If omitted, the context's 
default connection will be used. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-ConnectionProviderName <String> 
Specifies the provider invariant name of the connection string. 

是否必需? True 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

-AppDomainBaseDirectory <String> 
Specifies the directory to use for the app-domain that is used for running Migrations 
code such that the app-domain is able to find all required assemblies. This is an 
advanced option that should only be needed if the solution contains several projects 
such that the assemblies needed for the context and configuration are not all 
referenced from either the project containing the context or the project containing 
the migrations. 

是否必需? False 
位置? named 
默认值 
是否接受管道输入? false 
是否接受通配符? False 

<CommonParameters> 
此 Cmdlet 支持常见参数: Verbose、Debug、 
ErrorAction、ErrorVariable、WarningAction、WarningVariable、 
OutBuffer、PipelineVariable 和 OutVariable。有关详细信息,请参阅 
about_CommonParameters ( http://go.microsoft.com/fwlink/?LinkID=113216)。

示例 1

 

示例 2 

 

示例 3

 

备注 

  若要查看示例,请键入: "get-help Get-Migrations -examples".
    有关详细信息,请键入: "get-help Get-Migrations -detailed".
    若要获取技术信息,请键入: "get-help Get-Migrations -full".
 
 
 来自get-help  EntityFramework.
其实这些可选参数我看了一下,在一个项目一个dbcontext的话不需要用到.因为这些参数大半是指定命名空间(可以用下拉框取代),连接字符串,文件目录,下下文类名这类的.
但是我有一个困惑就是,code first的时候,至上而下的迁移怎么做(从数据库更新实体)?
 
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
9月前
|
SQL 存储 开发框架
EF框架如何搭建
EF框架如何搭建
|
9月前
|
API 数据库
如何使用WCF框架和EF框架实现对数据库的操作
如何使用WCF框架和EF框架实现对数据库的操作
|
9月前
|
SQL 存储 XML
|
10月前
|
存储 关系型数据库 数据库连接
EF框架(一)搭建过程
EF:Entity Framework的简写,实体框架,EF是ADO.net的一组支持开发面向数据的软件应用程序的技术,是微软的一个orm框架。介绍EF框架之前,先带大家了解一下ORM。
|
SQL JSON 关系型数据库
EF-CodeFirst模式
EF-CodeFirst模式
80 0
EF-CodeFirst模式
|
数据可视化 数据库 C++
EF-CodeFirst实现过程+数据库迁移
EF-CodeFirst实现过程+数据库迁移
EF-CodeFirst实现过程+数据库迁移
|
开发框架 JSON 前端开发
ASP.NETCore 使用SQLite教程 EF SQLite教程,修改模型更新数据库,适合初学者看懂详细、简单教程
SQLIte 操作方便,简单小巧,这里笔者就不再过多介绍,感兴趣可以到以下博文 https://blog.csdn.net/qq_31930499/article/details/80420246 文章介绍创建ASP.NET Core 程序,创建模型、上下文,生成数据库,对数据库增删查改。 并对每个过程进行详细介绍,使初学者尽快了解内容和相关知识,避免对某一知识点怀疑、卡在某个位置。
992 0
ASP.NETCore 使用SQLite教程 EF SQLite教程,修改模型更新数据库,适合初学者看懂详细、简单教程
|
数据库
EF CodeFirst 创建数据库
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。    十年河东十年河西,莫欺少年穷    学无止境,精益求精    话说EF支持三种模式:Code First   Model First   DataBase First,微软最新的EF框架,也就是EF7舍弃了Model First 和 DataBase First,咱们作为最底层的程序员必须跟着‘党’的走,既然微软都放弃了Model First 和 Database First,那么我们也应当跟着‘党’的路线走,表示坚决拥护‘党’的决定,坚决走Code First路线。
1350 0
|
数据库
EF CodeFirst 如何通过配置自动创建数据库<当模型改变时>
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。    十年河东十年河西,莫欺少年穷    学无止境,精益求精    本篇为进阶篇,也是弥补自己之前没搞明白的地方,惭愧惭愧。
1680 0