国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

EF Core入門

這篇具有很好參考價值的文章主要介紹了EF Core入門。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

EF Core是微軟官方提供的ORM框架。EF Core不僅可以操作Microsoft SQL Server、MySQL、Oracle、PostgreSQL等數(shù)據(jù)庫,而且可以操作Azure Cosmos DB等NoSQL數(shù)據(jù)庫


一、EF Core環(huán)境搭建

前提條件:已經(jīng)完整安裝了Microsoft SQL Server

下面是一個實際操作EF Core的演示

  • 這是項目最終的目錄,這里需要關注的就是.cs文件

EF Core入門

  • 首先新建一個.NET Core控制臺項目,然后在項目中創(chuàng)建Book實體類
    public class Book
    {
        public long Id { get; set; } //主鍵

        public string Title { get; set; }//標題
        
        public DateTime PubTime { get; set; }//發(fā)布日期
        public double Price { get; set; }//單價

        public string AuthorName { get; set; }//作者名字
    }
  • 為項目安裝NutGet包Microsoft.EntityFrameworkCore.SqlServer

EF Core入門
EF Core入門

安裝命令

Install-Package Microsoft.EntityFrameworkCore.SqlServer
  • 創(chuàng)建實現(xiàn)了IEntityTypeConfiguration接口的實體類的配置類BookEntityConfig
    class BookConfig : IEntityTypeConfiguration<Book>
    {
        public void Configure(EntityTypeBuilder<Book> builder)
        {
            //表示實體類對應的數(shù)據(jù)庫表的名字為T_Books
            builder.ToTable("T_Books");
            //這里沒有配置各個屬性子在數(shù)據(jù)庫中列名和數(shù)據(jù)類型,EF Core將會默認把屬性的名字作為列名,并且以屬性的類型來推斷數(shù)據(jù)庫表中各列的數(shù)據(jù)類型
        }
    }

這個配置的作用是配置實體類和數(shù)據(jù)庫表的對應關系,現(xiàn)在可能理解的并不深刻,后面就會明白很多了…

  • 創(chuàng)建一個繼承自DbContext類的MyDbContext類(名字沒有要求)
    class MyDbContext:DbContext
    {
        public DbSet<Book> Books { get; set; }
        

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);
            optionsBuilder.UseSqlServer("Server=.;Database=demo1;Trusted_Connection=True;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            //從當前程序集中加載所有的IEntityTypeConfiguration
            modelBuilder.ApplyConfigurationsFromAssembly(this.GetType().Assembly);
        }
    }

MyDbContext中的Books屬性對應的數(shù)據(jù)庫中的T_Books表,對Books的操作將會反映到數(shù)據(jù)庫的T_Books表中。這種傳承自DbContext的類叫做“上下文” 。
OnConfiguring方法用于對程序要連接的數(shù)據(jù)庫進行配置,這里的配置

optionsBuilder.UseSqlServer("Server=.;Database=demo1;Trusted_Connection=True;MultipleActiveResultSets=true;Encrypt=True;TrustServerCertificate=True;");

是對本地SQL Server數(shù)據(jù)庫的連接,名為demo1的數(shù)據(jù)庫,如果連接其他的服務器中的數(shù)據(jù)庫,需求去微軟文檔查看相應的連接字符串要求

  • 通過NuGet為項目安裝Microsoft.EnityFrameworkCore.Tools包,這是為了使用EF Core生成數(shù)據(jù)庫工具
Install-Package Microsoft.EnityFrameworkCore.Tools
  • 安裝完之后我們執(zhí)行Add-Migration命令會自動在項目的Migrations文件夾中生成C#代碼
    EF Core入門
    這里后面的AddBirth是自行定義的,是一個名字而已
  • 最后執(zhí)行Update-database命令那些在Migrations 文件夾中用來創(chuàng)建數(shù)據(jù)庫表的代碼才會被應用到數(shù)據(jù)庫中
    EF Core入門
    這時候我們就可以來查看數(shù)據(jù)庫中是否有對應的表了

    EF Core入門

二、基本的增刪改查

1.增加數(shù)據(jù)

這里是在Program.cs中操作了

internal class Program
    {
        static async Task  Main(string[] args)
        {
            //創(chuàng)建邏輯上的數(shù)據(jù)庫
            using (MyDbContext myDbContext = new MyDbContext())
            {
                Book b1 = new Book
                {
                    AuthorName = "楊中科",
                    Title = "零基礎學C語音",
                    Price = 59.8,
                    PubTime = new DateTime(2019, 3, 1)
                };
                Book b2 = new Book
                {
                    AuthorName = "Robert Sedgewick",
                    Title = "算法(第四版)",
                    Price = 99,
                    PubTime = new DateTime(2012, 10, 1)
                };
                Book b3 = new Book
                {
                    AuthorName = "吳軍",
                    Title = "數(shù)學之美",
                    Price = 69,
                    PubTime = new DateTime(2020, 5, 1)
                };
                Book b4 = new Book
                {
                    AuthorName = "楊中科",
                    Title = "程序員的SQL金典",
                    Price = 52,
                    PubTime = new DateTime(2008, 9, 1)
                };
                Book b5 = new Book
                {
                    AuthorName = "吳軍",
                    Title = "文明之光",
                    Price = 246,
                    PubTime = new DateTime(2017, 3, 1)
                };
                //把對象加入邏輯上的表上面
                myDbContext.Books.Add(b1);
                myDbContext.Books.Add(b2);
                myDbContext.Books.Add(b3);
                myDbContext.Books.Add(b4);
                myDbContext.Books.Add(b5);
                //Update-Database
                await myDbContext.SaveChangesAsync();
            }
        }
    }

2.查詢數(shù)據(jù)

				IQueryable<Book> books = myDbContext.Books.Where(b => b.Price > 80);
                foreach(var book in books)
                {
                    Console.WriteLine(book.Title);
                }
                var Book = myDbContext.Books.Single(b => b.Title == "零基礎學C語言");
                Console.WriteLine(Book.AuthorName);

查詢就不需要 await myDbContext.SaveChangesAsync();了,在Main方法中執(zhí)行即可

3.修改數(shù)據(jù),刪除數(shù)據(jù)

修改數(shù)據(jù)和刪除數(shù)據(jù),都分兩步,第一步就是把數(shù)據(jù)查詢出來,再就是對應操作文章來源地址http://www.zghlxwxcb.cn/news/detail-407267.html

                //修改,要對數(shù)據(jù)進行修改,首先先查出來對應數(shù)據(jù),再修改

                var b = myDbContext.Books.Single(b => b.Title == "數(shù)學之美");
                b.AuthorName = "junwu";

                Dog dog = myDbContext.Dogs.Single(b => b.Id == 2);

                myDbContext.Dogs.Remove(dog);
                await myDbContext.SaveChangesAsync();

到了這里,關于EF Core入門的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Big synopsis - 微軟官方 JavaScript 入門教程【完結撒花】

    url resource Hi there, welcome to

    2024年02月21日
    瀏覽(19)
  • EF Core并發(fā)控制

    EF Core并發(fā)控制

    并發(fā)控制:避免多個用戶同時操作資源造成的并發(fā)沖突問題。 最好的解決方案:非數(shù)據(jù)庫解決方案 數(shù)據(jù)庫層面的兩種策略:悲觀、樂觀 悲觀并發(fā)控制一般采用行鎖 ,表鎖等排他鎖對資源進行鎖定,確保同時只有一個使用者操作被鎖定的資源。 EF Core沒有封裝悲觀并發(fā)控制的

    2024年02月10日
    瀏覽(20)
  • 4.1EF Core

    EF Core是微軟官方的ORM框架,ORM即對象關系映射,也就是我們可以直接操作C#中的對象就可以完成數(shù)據(jù)庫的操作。 EF Core環(huán)境搭建 首先要創(chuàng)建C#對象,用以對應數(shù)據(jù)庫中的表,該C#對象也成為實體類。 根據(jù)所用的數(shù)據(jù)庫選擇NuGet包,本文使用SQLite數(shù)據(jù)庫,所以安裝Microsoft.EntityF

    2024年02月05日
    瀏覽(19)
  • 【EF Core】實體的主、從關系

    【EF Core】實體的主、從關系

    假設有以下兩個實體: Homework 類表示家庭作業(yè),它并不是獨立使用的,而是與學生類(Student)有依賴關系。一位學生有多個家庭作業(yè)記錄,即 Homework 對象用于記錄每位同學的作業(yè)的。按照這樣的前提,Student 是主對象,Homework 是從對象。 Student 對象有個 Homeworks 屬性,用于引

    2024年02月11日
    瀏覽(24)
  • Net Core中使用EF Core連接Mysql數(shù)據(jù)庫

    Net Core中使用EF Core連接Mysql數(shù)據(jù)庫

    Entity Framework Core的前身是微軟提供并主推的ORM框架,簡稱EF,其底層是對ADO.NET的封裝。EF支持SQLServer、MYSQL、Oracle、Sqlite等所有主流數(shù)據(jù)庫。 首先是使用時的幾個模式的整理及其理解: Code First:根據(jù)代碼自動創(chuàng)建數(shù)據(jù)庫表結構甚至是數(shù)據(jù)庫,可以支持多庫開發(fā),代碼較少冗余

    2024年01月24日
    瀏覽(28)
  • EF Core + MySQL 基本增刪改查

    EF Core + MySQL 基本增刪改查

    基于EF Core + MySQL的基本增刪改查,示例是基于.NET6 + EF Core + MySQL 創(chuàng)建實體和數(shù)據(jù)庫、EFCore 數(shù)據(jù)遷移項目基礎上的內(nèi)容增加。同時也是對基于Canal實現(xiàn)MySQL 8.0 數(shù)據(jù)庫數(shù)據(jù)同步項目的驗證。 Controllers----添加----控制器,選擇api----包含讀寫操作的API控制器。 將上下文類注入到User

    2024年02月08日
    瀏覽(24)
  • EF Core 在實際開發(fā)中,如何分層?

    EF Core 在實際開發(fā)中,如何分層?

    分層就是將 EF Core 放在單獨的項目中,其它項目如 Asp.net core webapi 項目引用它 這樣的好處是解耦和項目職責的清晰劃分,并且可以重用 EF Core 項目 但是也會數(shù)據(jù)庫遷移變得復雜起來 創(chuàng)建一個 .NET 類庫項目,項目名字為 BooksEFCore 引用以下 Nuget 包 Microsoft.EntityFrameworkCore.Relati

    2024年01月24日
    瀏覽(25)
  • 使用EF Core創(chuàng)建webapi接口(二)

    使用EF Core創(chuàng)建webapi接口(二)

    有錯誤歡迎大家給我指正 說明:netcore webapi+net6+EF?Core版本,codefirst模式(代碼創(chuàng)建數(shù)據(jù)庫) 1.netcore webapi+net6+EF?Core版本,dbfirst模式(代碼生成數(shù)據(jù)庫)見:使用EF Core創(chuàng)建webapi接口(一)-CSDN博客 2.netcore webapi+net6+EF?Core+vue前后端聯(lián)動版本,見netcore webapi+net6+EF Core+vue3前后端聯(lián)動-CSD

    2024年02月21日
    瀏覽(25)
  • EF Core預編譯模型Compiled Model

    EF Core預編譯模型Compiled Model

    最近還在和 npgsql 與 EF Core 斗爭,由于 EF Core 暫時還不支持 AOT,因此在 AOT 應用程序中使用 EF Core 時,會提示問題: 聽這個意思,似乎使用 Compiled Model 可以解決問題,于是就又研究了一下 EF Core 的這個功能。 在 EF Core 中,模型根據(jù)實體類和配置構建,默認情況下,每次創(chuàng)建

    2024年02月05日
    瀏覽(20)
  • Ef Core花里胡哨系列(4) 多租戶

    當然,我們要考慮設計問題,例如,切換 Schema 或者改變數(shù)據(jù)庫時, Ef Core 同樣也會刷新改實體的緩存,所以,首次查詢將會很慢,不適合大表。 在我的上一篇博客中 [Ef Core花里胡哨系列(3) 動態(tài)修改實體對應的表(分表)、多租戶] 中我們實現(xiàn)了如何分表,同理,我們可以用近

    2024年02月03日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包