如何使用EF Core 2.0
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();
}
}