实际项目中,面对的事物实际运转的规律,要被反映到软件系统中的东西。
模型是不同人从不同角度观察事物,然后抽象出的事物描述。根据我们要处理的问题,提取出我们要关注的事物的特点,进行建模。
仓库模式是一种数据持久化的设计模式。让程序员只关注数据之间的关系就可以操作数据库。
EF是一款数据管理框架。
(1)先安装 docker。
(2)然后 docker pull microsoft/mssql-server-linux 拉取镜像。
(3)然后 docker run -e “ACCEPT_EULA=Y” -e “SA_PASSWORD=PaSSword12!” -p 1433:1433 -d microsoft/mssql-server-linux 启动一个容器。
(4)然后就可以连接这个数据库了。
(1)通过 nuget 安装 Microsoft.EntityFrameworkCore、Microsoft.EntityFrameworkCore.SqlServer。
(2)然后 创建 Model :TouristRoute 和 TouristRoutePicture,其中添加了 [Key]、[Required]、[MaxLength(100)] 等标记。
(3)准备与 Model 对应的 json 文件。
(4)AppDbContext 文件:
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options)
: base(options)
{
}
public DbSet<TouristRoute> TouristRoutes { get; set; }
public DbSet<TouristRoutePicture> TouristRoutePictures { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
var touristRoutesMockData = File.ReadAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
+ @"/Database/touristRoutesMockData.json");
IList<TouristRoute> touristRoutes = JsonConvert.DeserializeObject<IList<TouristRoute>>(touristRoutesMockData);
modelBuilder.Entity<TouristRoute>().HasData(touristRoutes);
var touristRoutePicturesMockData = File.ReadAllText(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
+ @"/Database/touristRoutePicturesMockData.json");
IList<TouristRoutePicture> touristRoutePictures = JsonConvert.DeserializeObject<IList<TouristRoutePicture>>(touristRoutePicturesMockData);
modelBuilder.Entity<TouristRoutePicture>().HasData(touristRoutePictures);
base.OnModelCreating(modelBuilder);
}
}
(5)使用命令:
dotnet ef migrations add xxxxxx
dotnet ef database update
(6)注意要保存好 Migrations 文件夹中迁移数据的 cs 文件
. Net 实战+RESTful思想纵深课程,开发优雅RESTful风格API。
了解课程