【发布时间】:2019-10-14 00:19:21
【问题描述】:
我的应用程序使用 Asp.NET Identity 执行身份验证。 登录的用户存储在 dbo.ASPNetUsers
前段时间,我使用迁移添加另一个名为“客户”的表,但现在该表已填充。
如何添加控制器以仅对现有的“客户”(其他表具有控制器)执行 CRUD 操作,而不会删除表并冒删除其任何内容或数据库中现有表中的任何其他内容的风险。
到目前为止我尝试了什么:
在 Models 文件夹中创建名为“Customer”的类以类似于表格列
public class Customer
{
[Key]
public string ID {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
}
添加 DbSetCustomers
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
// : base("DefaultConnection", throwIfV1Schema: false)
: base("MS_TableConnectionString", throwIfV1Schema: false)
{
}
public DbSet<Customer> Customers { get; set; }
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
}
添加类型为 Web API 2 控制器的新控制器,使用实体框架 使用模型类 Customer,数据上下文类作为默认 ApplicationDBContext(创建控制器时的默认选项,我假设它使用我的应用程序azure 表的连接字符串)。
在 POST 中使用 GET 客户时,我收到一条错误消息,指出自上次迁移以来数据库已更改,我想这是因为添加了 DbSet 客户但我不想更新迁移,因为在迁移代码中有 Drop表格命令。
- 这是正确的方法吗?
- 我应该只更改迁移脚本而不删除表吗?
请指教。
【问题讨论】:
标签: asp.net asp.net-web-api entity-framework-6 azure-sql-database