我有一个我使用MVC模板创建的ASP.NET应用程序,其中Identity设置为单个用户帐户。这意味着我有一个身份的DbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
我有一个看起来像这样的本地数据库
我想在我的架构中添加一个新表来获取信用卡信息。该表将命名为dbo.CreditCards,并将有三列,ID int,UserName varchar(128),cardNumber char(16),expirationDate date和CVV char(3)。如何修改此上下文以使用此模式中的那些列创建该表?
答案 0 :(得分:2)
使用Entity Framework最简单。通过查看StackOverflow中EntityFramework标记here的“信息”部分,您可以了解很多。您可以阅读书籍或访问其中列出的网站。
要回答您的问题,只需创建CreditCard
实体,如下所示:
public class CreditCard
{
public int Id { get; set; }
[StringLength(128)]
public string UserName { get; set; }
[MinLength(16), MaxLength(16)]
[Column(TypeName = "CHAR")]
public string CardNumber { get; set; }
[Column(TypeName = "DATE")]
public DateTime ExpirationDate { get; set; }
[MinLength(3), MaxLength(3)]
[Column(TypeName = "CHAR")]
public string CVV { get; set; }
}
而您的DbContext
只需添加一个名为CreditCards
的新属性,该属性的类型为DbSet<CreditCard>
。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public DbSet<CreditCard> CreditCards { get; set; }
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
如果您重新创建或更新数据库,您将拥有该表。
答案 1 :(得分:2)
代码优先意味着当您想要添加内容时,首先将其添加到代码中。
public DbSet<CreditCardInfo> CreditCards { get; set; }
添加到ApplicationDbContext
Add-Migration AnyName
Update-Datebase
您可以参考此tutorial获取更详细的演练。