我有一个从典型模板创建的应用程序,其中包含用于登录等的常规用户标识。它带有预先构建的UserContext,我对其进行了一些修改。我想在数据库中添加另一个表(我使用的是代码优先迁移)。
以下是新表的模型:
[Table("Disclosures")]
public class Disclosure
{
[Key]
public int DisclosureId { get; set; }
public string ActivityTitle { get; set; }
public string ActivityDate { get; set; }
public bool FinancialRelationship { get; set; }
public string GrantsResearchSupport { get; set; }
public string Consultant { get; set; }
public string StockShareholder { get; set; }
public string Honoraria { get; set; }
public string Other { get; set; }
public string DateSigned { get; set; }
}
这就是我将它添加到UserContext的方式(这是我不确定我是否正确执行此操作的方式)
public class UserContext : IdentityDbContext<User>
{
public UserContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>().ToTable("Users").Property(p => p.Id).HasColumnName("UserId");
modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims");
modelBuilder.Entity<IdentityRole>().ToTable("Roles").Property(p=>p.Id).HasColumnName("RoleId");
}
public DbSet<Disclosure> Disclosures { get; set; }
public static UserContext Create()
{
return new UserContext();
}
}
这是创建后的表结构
CREATE TABLE [dbo].[Disclosures] (
[DisclosureId] INT IDENTITY (1, 1) NOT NULL,
[ActivityTitle] NVARCHAR (MAX) NULL,
[ActivityDate] NVARCHAR (MAX) NULL,
[FinancialRelationship] BIT NOT NULL,
[GrantsResearchSupport] NVARCHAR (MAX) NULL,
[Consultant] NVARCHAR (MAX) NULL,
[StockShareholder] NVARCHAR (MAX) NULL,
[Honoraria] NVARCHAR (MAX) NULL,
[Other] NVARCHAR (MAX) NULL,
[DateSigned] NVARCHAR (MAX) NULL,
[User_Id] NVARCHAR (128) NULL
);
注意&#34; User_Id&#34;已添加的字段。该属性不会添加到Disclosure模型中。如果我添加新的Disclosure,我该如何设置User_Id值?而且,我是否首先正确地做到了这一点?我基本上只想在这个应用程序中添加更多表,而不会破坏任何已经自动创建的标识内容。