asp.net core 1.1 entityframework mysql

本人是作JAVA開發的,由於前兩天看了一篇文章,知道了.net core的存在,很感興趣,因此作了一下嘗試。java

打開visual studio 2017,新建一個.net coremysql

 

點擊運行,你能夠看到一個網站模板。linux

 打開Program.cs,你看到的是這樣的:spring

 

這個文件是應用的啓動文件,sql

UseKestrel()表示啓用了內置的一箇中間件"Kestrel",就和eclipse的GlassFish是一個意思,但聽說性能比iis高出不少倍。數據庫

UseStartup<Startup>() 泛型指定了啓動時的項目運行時配置文件,就是Startup.cs文件。json

mvc相信你們都已經很熟悉了,就很少說了,咱們鏈接一下數據庫,由於我本機安裝有mysql因此就天然想去鏈接,mvc

因此就去NuGet找相關的模塊,但都沒法安裝,後來看了一個文檔,說是.net core的鏈接庫沒在nuget標準庫裏。app

最後去nuget官網找到了:框架

http://www.nuget.org/packages/MySql.Data.EntityFrameworkCore/

在nuget控制檯下執行這個命令就能夠了:Install-Package MySql.Data.EntityFrameworkCore -Pre

而後在項目下新建一個Modles文件夾,用來存放entity

在modles下新建一個類:

public class User {
        [Key]
        public int ID { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
        public string Bio { get; set; }
    }

在同一個文件中新建一個ef上下文:

public class EFDbContext : DbContext {
        public EFDbContext(DbContextOptions<EFDbContext> options) : base(options) {

        }
        public DbSet<User> User { get; set; }
        
    }

將Stratup.cs文件作以下修改

public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<EFDbContext>(options => options.UseMySQL(Configuration.GetConnectionString("MySQL")));
            // Add framework services.
            services.AddMvc();

        }

這裏有一個問題,就是

options.UseMySQL

這裏會報錯,說UseMySQL方法不存在,這是由於這個方法是在擴展包裏的,因此要引入MySQL.Data.EntityFrameworkCore.Extensions命名空間。

這裏有個

Configuration.GetConnectionString("MySQL")

的鏈接配置文件,那咱們打開appsettings.json文件,作以下修改:

{
  "ConnectionStrings": {
    "MySQL": "server=localhost;database=template;uid=root;pwd=;charset=utf8;sslmode=none"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  }
}

 

在mysql裏建一個新庫template ,對照着User.cs文件,新建一張表,寫點測試數據在裏面。

 

打開Controllers下的HomeControll.cs文件:

public IList<User> UserList() {
            var list = _context.User.ToList();
            return list;
        }

點擊運行,

在地址欄裏追加地址:/Home/UserList 

以上就是對於此次體驗的大概過程,感受相對於java目前最火的框架springmvc,從完整性和模塊獨立上來講,二者的差距已經愈來愈小了,據說2.0版本今年7月左右發佈,頗有可能會超越後者,另外 .net core相較於.net framework的最大變化,就是能跨平臺了,下次再說說怎麼把項目發到linux上執行。

相關文章
相關標籤/搜索