如何更新/生成数据库表模型?

时间:2018-09-12 18:52:16

标签: asp.net sql-server entity-framework asp.net-core

我正在学习tryCaptureView(),并且在以下情况下遇到一些问题:

我为ASP.NET Core提供的IdentityUser创建了一个扩展类,该扩展类为默认数据库Microsoft.AspNetCore.Identity添加了一些额外的字段:

AspNetUsers

我能够执行以下命令来更新表结构:

public class ApplicationUser : IdentityUser
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime BirthDate { get; set; }
    public string LockoutMessage { get; set; }
    public string SessionId { get; set; }
}

问题

假设现在我使用软件add-migration <migration name> -context <app context> update-database 创建了另一个名为Microsoft SQL Server Management Studio的表,该表的UserDetails表的ID为FK

我想在AspNetUsers文件夹中使用我的应用程序中的所有属性生成该类,因此不需要手动编写新表的表的属性,该怎么做? / p>

我尝试过:Models,但似乎不起作用。

1 个答案:

答案 0 :(得分:1)

从数据库引入内容的唯一方法是使用Scaffold-DbContext。但是,这是全有或全无。它将为数据库中的每个表创建实体类(无论它们是否存在) 并启动DbContext

要么先使用代码,然后创建实体,然后生成针对数据库运行的迁移,要么对数据库进行更改,然后使用Scaffold-DbContext命令生成上下文和所有关联的实体。您无法混合搭配。

总之,您需要选择一种策略并坚持下去。如果您对数据库比较满意,则在该处执行所有操作并从中构建代码。否则,如果您想先使用代码,则对此进行承诺,切勿手动触摸数据库。