how to use use EntityFrameworkCore under asp.net 2.0

How to use EntityFrameworkCore under asp.net 2.0

目前.NET CORE的版本已经到2.1.105,到了2.0后功逐渐完善丰富,已完全满足绝大部分web开发的需要,今天要分享的是自己在学习研究EntityFrameworkCore的CODE first的一些经历,在此记录沉淀下来。

开始吧!

 

EntityFrameworkCoreEF 6.0的异同

EF Core 理解为EF 6.0的简洁版,如何使用过EF 6.0再使用EF Core,应该相当容易,下面简单列举下它们的特点 (翻译自MSDN):

  1. EF Core跨平台,在Windows, Linux, Mac都可运行
  2. 官方介绍EF Core是一个轻量级,可扩展, 性能更优

我们可以自行扩展EF Core,使其拥有甚至在EF 6.0没有的功能。

  1. EF 6.0 是经过时间考验的,第一个版本从2008年开始,从EF 4.1开始就使用NuGet来管理更新。
  2. EF Core保留了原EF的操作方式,会用EF  6.0,  EF Core也不是问题。

原文地址: https://docs.microsoft.com/en-us/ef/efcore-and-ef6/

 

EntityFrameworkCore的使用

EF Core的使用都是从code first 开始的,我今天是使用SQLite作为Provider, 目前EE Core支持的Provider已经相当丰富, 这里列举一下:

NuGet Package

Supported database engines

Maintainer / Vendor

Notes / Requirements

Useful links

Microsoft.EntityFrameworkCore.SqlServer

SQL Server 2008 onwards

EF Core Project(Microsoft)

 

docs

Microsoft.EntityFrameworkCore.Sqlite

SQLite 3.7 onwards

EF Core Project(Microsoft)

 

docs

Microsoft.EntityFrameworkCore.InMemory

EF Core in-memory database

EF Core Project(Microsoft)

For testing only

docs

Npgsql.EntityFrameworkCore.PostgreSQL

PostgreSQL

Npgsql Development Team

 

docs

Pomelo.EntityFrameworkCore.MySql

MySQL, MariaDB

Pomelo Foundation Project

 

readme

Pomelo.EntityFrameworkCore.MyCat

MyCAT Server

Pomelo Foundation Project

Pre-release, Up to EF Core 1.1

readme

EntityFrameworkCore.SqlServerCompact40

SQL Server Compact 4.0

Erik Ejlskov Jensen

.NET Framework

wiki

EntityFrameworkCore.SqlServerCompact35

SQL Server Compact 3.5

Erik Ejlskov Jensen

.NET Framework

wiki

MySql.Data.EntityFrameworkCore

MySQL

MySQL project(Oracle)

Pre-release

docs

FirebirdSql.EntityFrameworkCore.Firebird

Firebird 2.5 and 3.x

Jiří Činčura

EF Core 2.0 onwards, Pre-release

blog

EntityFrameworkCore.FirebirdSql

Firebird 2.5 and 3.x

Rafael Almeida

EF Core 2.0 onwards

wiki

IBM.EntityFrameworkCore

Db2, Informix

IBM

Windows version

blog

IBM.EntityFrameworkCore-lnx

Db2, Informix

IBM

Linux version

blog

IBM.EntityFrameworkCore-osx

Db2, Informix

IBM

macOS version

blog

Devart.Data.Oracle.EFCore

Oracle 9.2.0.4 onwards

DevArt

Paid

docs

Devart.Data.PostgreSql.EFCore

PostgreSQL 8.0 onwards

DevArt

Paid

docs

Devart.Data.SQLite.EFCore

SQLite 3 onwards

DevArt

Paid

docs

Devart.Data.MySql.EFCore

MySQL 5 onwards

DevArt

Paid

docs

EntityFrameworkCore.Jet

Microsoft Access files

Bubi

EF Core 2.0, .NET Framework

 

 

DbContext

这里和以前的EF保持一致,自定义我们的DbContext, 这里和以往的code first没有差别。

public class AppConfigDbContext : DbContext

    {

        public AppConfigDbContext(DbContextOptions options) : base(options)

        {

           //create database if no exsisted one

      this.Database.EnsureCreated();       

     }

       

        public DbSet<Product> Products { get; set; }

    }

 

IDesignTimeDbContextFactory<TDbContext>

帮助我们做Migration时用到。

 

我们需要在有DbContext的project内添加Microsoft.EntityFrameworkCore.Design, project file csproj

 

posted @ 2018-05-03 11:35  RHINO_WU  阅读(504)  评论(0)    收藏  举报