.net core 根據數據庫生成實體類


    微軟最近幾年在跨平台上不斷發力,很多.net程序員也摩拳擦掌,對微軟寄以厚望。就在最近,微軟還推出了asp .net core2.0預覽版。

   通過對.net core的簡單嘗試,我發現以往我們開發MVC項目時,是通過新建一個.edmx文件來生成和更新實體模型,但是在core中,微軟去掉了.edmx,所以下面我就來說一下core中如何生成model類。

 

環境:vs2017 + sqlserver2012

第一步   我們先創建測試庫                                      

CREATE DATABASE [Blogging];
GO

USE [Blogging];
GO

CREATE TABLE [Blog] (
    [BlogId] int NOT NULL IDENTITY,
    [Url] nvarchar(max) NOT NULL,
    CONSTRAINT [PK_Blog] PRIMARY KEY ([BlogId])
);
GO

CREATE TABLE [Post] (
    [PostId] int NOT NULL IDENTITY,
    [BlogId] int NOT NULL,
    [Content] nvarchar(max),
    [Title] nvarchar(max),
    CONSTRAINT [PK_Post] PRIMARY KEY ([PostId]),
    CONSTRAINT [FK_Post_Blog_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [Blog] ([BlogId]) ON DELETE CASCADE
);
GO

INSERT INTO [Blog] (Url) VALUES
('http://blogs.msdn.com/dotnet'),
('http://blogs.msdn.com/webdev'),
('http://blogs.msdn.com/visualstudio')
GO

 

 第二步 創建一個.net core項目                               

 

第三步  安裝ef                                                      

因為.net core 項目本身沒有引用ef,所以我們需要手動引入ef:

Tools -> NuGet Package Manager -> Package Manager Console
Run Install
-Package Microsoft.EntityFrameworkCore.SqlServer

Run Install-Package Microsoft.EntityFrameworkCore.Tools

Run Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design

通過nuget安裝:

 

第四步  通過數據庫創建實體模型                             

Tools –> NuGet Package Manager –> Package Manager Console

Run the following command to create a model from the existing database. If you receive an error stating The term 'Scaffold-DbContext' is not recognized as the name of a cmdlet, then close and reopen Visual Studio.
如果報了上面這個錯,可以關掉vs再重新打開后再次嘗試。

Scaffold-DbContext "Server=.;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

項目會生成一個model文件夾,里面有我們需要的實體類和上下文BloggingContext.cs

 

    完成!因為我們只介紹如何生成實體類,所以就到此為止,如果想操作實體類增刪改查,我們還需要注冊上下文在Startup.cs文件里,具體可以參考微軟的說明文檔:

    https://docs.microsoft.com/en-us/ef/core/get-started/aspnetcore/existing-db

 

別着急走啊!客官!如果本篇文章對你有幫助,請不要吝惜你的贊哦,請推薦一下!!

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM