EntityFramework Core是一個輕量級的,非常流行的跨平台數據庫訪問技術架構。
如何在項目中使用EntityFramework Core
在Visual Studio中,使用程序包管理控制台輸入命令行:
Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 2.0.0
在跨平台開發使用命令行dotnet
dotnet package Microsoft.EntityFrameworkCode.SqlServer -version 2.0.0
對EF Core而言,使用模型執行數據訪問,模型是由一個實體類和數據庫會話派生的上下文。你可以根據現有的數據庫結構生成一個模型,也可以通過EF Migrations根據模型生成數據庫結構。在這里,我只簡單的介紹下在已存在的數據庫創建模型,創建一個自定義數據庫會話上下文BloggingContext類繼承 DbContext類 ,然后重寫OnConfiguring方法,
using Microsoft.EntityFrameworkCore; using System.Collections.Generic; namespace Intro { public class BloggingContext : DbContext { public DbSet<Blog> Blogs { get; set; } public DbSet<Post> Posts { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"); } } public class Blog { public int BlogId { get; set; } public string Url { get; set; } public int Rating { get; set; } public List<Post> Posts { get; set; } } public class Post { public int PostId { get; set; } public string Title { get; set; } public string Content { get; set; } public int BlogId { get; set; } public Blog Blog { get; set; } } }
如何查詢數據,保存數據
public IList<Blog> FindByRating()
{
using (var db = new BloggingContext())
{
var blogs = db.Blogs .Where(b => b.Rating > 3)
.OrderBy(b => b.Url) .ToList(); }
}
public void Insert()
{
using (var db = new BloggingContext())
{
var blog = new Blog { Url = "http://sample.com" };
db.Blogs.Add(blog);
db.SaveChanges();
}
}