3. 将模型添加到 ASP.NET Core MVC 应用
添加数据模型类
右键单击 Models 文件夹, 然后单击 "添加"> "类". 将类命名 "Movie".
- namespace MvcMovie.Models
- [DataType(DataType.Date)]
Movie 类包含:
数据库需要 Id 字段以获取主键.
- "添加">"新搭建基架的项目".
- "添加".
模型类: Movie (MvcMovie.Models)
Visual Studio 将创建:
初始迁移
"包管理器控制台"(PMC).
Add-Migration 命令生成用于创建初始数据库架构的代码.
检查通过依赖关系注入注册的上下文
组件通过构造函数提供相应服务.
基架工具自动创建数据库上下文并将其注册到 DI 容器.
- (options =>
- true;
- services.AddDbContext(options =>
- namespace MvcMovie.Models
- options)
- public DbSetMovie {
- get; set;
- }
前面的代码为实体集创建 DbSet 属性. 在实体框架术语中, 实体集通常与数据表相对应. 实体对应表中的行.
系统
测试应用
浏览器中的 URL (https://localhost:port/movies).
如果收到如下所示数据库异常: 缺少迁移步骤.
检查 Startup 类: ConfigureServices 方法
(options =>
(options => 指定要使用的数据库和连接字符串.
是 lambda 运算符
- public MoviesController(MvcMovieContext context)
- Details(int? id)
- var movie = await _context.Movie
- m.Id == id);
- return View(movie);
在未提供 ID 值的情况下, id 参数可定义为可以为 null 的类型 (int?).
- var movie = await _context.Movie
- m.Id == id);
- @{
- Details
- model.Title)
- model.Title)
- model.ReleaseDate)
- model.ReleaseDate)
- model.Genre)
- model.Genre)
- model.Price)
- model.Price)
通过将 @model 语句包括在视图文件的顶端, 可以指定视图期望的对象类型.
Index()
创建电影控制器时, 基架会自动在 Index.cshtml 文件的顶端包含以下 @model 语句:
@model 指令使你能够使用强类型的 Model 对象访问控制器传递给视图的电影列表. 例如, 在 Index.cshtml 视图中,
- \\
- @{
- Index
- model.Title)
- model.ReleaseDate)
- model.Genre)
- model.Price)
- item.Title)\\
- item.ReleaseDate)\\
- item.Genre)\\
- item.Price)\\
因为 Model 对象为强类型 (作为 IEnumerable 对象), 因此循环中的每个项都被类型化为 Movie.
来源: https://www.2cto.com/kf/201905/810238.html