Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。
EF Core 可用作对象关系映射程序 (O/RM),以便于 .NET 开发人员能够使用 .NET 对象来处理数据库,这样就不必经常编写大部分数据访问代码了。
Entity Framework Core 可通过名为数据库提供程序的插件库访问许多不同的数据库。
对于 EF Core,使用模型执行数据访问。 模型由实体类和表示数据库会话的上下文对象构成,可便于用户查询和保存数据。
可以根据现有数据库生成模型,手动将模型编码为与数据库匹配,也可以使用 EF 迁移根据模型创建数据库,然后在模型随时间推移发生更改时改进它。
也就是 可以通过实体类映射成数据库的表,也可以反过来通过数据库映射为实体类。同事 可以后期调整类或者数据库来同步调整数据库或者类。
下面我们 使用mysql数据库来搭建一个例子项目
使用VS2017+ 创建一个.NET CORE控制台程序
明白了,你要的是:代码块之间的文字保留原样,代码放进代码块里,一个字不改。
NUGET安装 MySql.Data.EntityFrameworkCore
创建表、
DROP TABLE IF EXISTS `blogs`;
CREATE TABLE `blogs` (
`BlogId` int(11) NOT NULL AUTO_INCREMENT,
`Url` varchar(255) DEFAULT NULL,
`Rating` varchar(255) DEFAULT NULL,
PRIMARY KEY (`BlogId`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
DROP TABLE IF EXISTS `posts`;
CREATE TABLE `posts` (
`PostId` int(11) NOT NULL AUTO_INCREMENT,
`Title` varchar(255) DEFAULT NULL,
`Content` varchar(255) DEFAULT NULL,
`BlogId` int(11) DEFAULT NULL,
PRIMARY KEY (`PostId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;Code language: PHP (php)
执行数据库
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
var blog = new Blog { Url = "http://bamn.cn", Rating = 9 };
db.Blogs.Add(blog);
db.SaveChanges();
var blog = db.Blogs.Include(blog => blog.Posts)
.Where(b => b.Rating > 3)
.OrderBy(b => b.Url)
.first(m=>m.blogid = 1);
foreach(var item in blog.posts){
}
}
}
}
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySQL(
@"server=localhost;Database=web;Uid=root;Pwd=123456");
}
}
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 Author Author { get; set; }
}
public class Author
{
public Photo Photo{ get; set; }
}
public class Photo
{
}Code language: HTML, XML (xml)
Next: 自动创建数据库