我没有发布asp.mvc Web应用程序的经验,只是通过本教程https://www.youtube.com/watch?v=gYK9nKHkX60开始学习。当他打开他的Web.config文件时,我在大约4:26分钟的时间注意到了我的问题,他只有一个连接字符串,而我却有两个:我在搭建第一个控制器时生成的DefaultConnection和DbContext。尽管如此,我仍然按照以下说明进行学习:
但是,执行步骤3会引发此错误
“外键'FK_dbo.QualificationMaps_dbo.Provinces_ProvinceId'引用了无效的表'dbo.Provinces'。”
我的问题似乎不是在发布上,而是对DbContext或connectionStrings的工作方式了解为零,因此,如果有人可以根据我在创建项目时几乎将所有东西都放在架子上的情况向我解释问题,我将不胜感激。
我生成的DbContext看起来像这样:
QMTrackingContext.cs
public class QMTrackingContext : DbContext
{
public QMTrackingContext() : base("name=QMTrackingContext")
{
}
public System.Data.Entity.DbSet<QMTracking.Models.Province> Provinces { get; set; }
public System.Data.Entity.DbSet<QMTracking.Models.Region> Regions { get; set; }
public System.Data.Entity.DbSet<QMTracking.Models.QualificationMap> QualificationMaps { get; set; }
}
}
我的模型如下:
Region.cs
public class Region
{
public int Id { get; set; }
[DisplayName("Region")]
public string RegionName { get; set; }
public virtual ICollection<Province> Provinces { get; set; }
}
Province.cs
public class Province
{
public int Id { get; set; }
public int RegionId { get; set; }
public virtual Region Region { get; set; }
public string ProvinceName { get; set; }
public virtual ICollection<QualificationMap> QualificationMaps { get; set; }
}
QualificationMap.cs
public class QualificationMap
{
public int Id { get; set; }
public int ProvinceId { get; set; }
public virtual Province Province { get; set; }
public string QMCode { get; set; }
}