我有两个独立的不相关模型,我试图在同一个数据库中使用它们。这是每个的代码:
public class ImageDBContext : DbContext
{
public ImageDBContext()
: base("DefaultConnection")
{
}
public DbSet<ImageModel> Images { get; set; }
}
[Table("Images")]
public class ImageModel
{
[Key]
public int ID { get; set; }
public string Type { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string FileName { get; set; }
[NotMapped]
public HttpPostedFileBase Attachment { get; set; }
}
这是另一个模型
public class TestimonialDBContext : DbContext
{
public TestimonialDBContext()
: base("DefaultConnection")
{
}
public DbSet<Testimonial> Testimonials { get; set; }
}
[Table("Testimonials")]
public class Testimonial
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
当我访问一个模型的视图时,效果很好。哪个模型都没有关系,但是当我转到另一个模型的视图时,我得到了这个错误:
自创建数据库以来,支持“ImageDBContext”上下文的模型已更改。考虑使用 Code First 迁移来更新数据库 ( http://go.microsoft.com/fwlink/?LinkId=238269 )。
在我看来,两个模型都试图使用同一张桌子?该表由第一个初始化的模型创建,但随后第二个模型尝试使用现有表而不是创建自己的表。
如何让两个模型在数据库中使用它们自己的表?
这是连接字符串:
<add name="DefaultConnection" connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=--------;User ID=-------;Password=---------" providerName="System.Data.SqlClient" />
更新:我已将以下代码添加到模型中,但仍然出现相同的错误。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<ImageModel>().ToTable("ImagesTable");
}
和
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Testimonial>().ToTable("TestimonialsTable");
}