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

问题描述 投票:0回答:1

我正在学习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的表,其中FK表是AspNetUsers表的id。

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

我试过:update-database但似乎不起作用。

asp.net sql-server entity-framework asp.net-core
1个回答
1
投票

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

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

无论长短,你需要选择一个策略并坚持下去。如果你对数据库更熟悉,那么在那里做所有事情并从中获取代码。否则,如果您想先使用代码,那么请对此做出承诺,绝不要手动触摸您的数据库。

© www.soinside.com 2019 - 2024. All rights reserved.