我正在使用EF 4.3.1并且启用了自动迁移与sql server 2008一起运行。我遇到了一个奇怪的问题,其中一个表被删除了 - 我甚至将AutomaticMigrationDataLossAllowed设置为false。我的两张表如下:
public class Sample
{
public int Id { get; set; }
public string Name { get; set; }
public int Number { get; set; }
public string FileName { get; set; }
public double Bpm { get; set; }
public double Duration { get; set; } //In Seconds
public int? TimeSignature { get; set; }
public int ArtistId { get; set; }
public Artist Artist { get; set; }
}
public class Artist
{
public int Id { get; set; }
public string ArtistName { get; set; }
public virtual ICollection<Sample> Samples { get; set; }
}
ArtistId上有一个外键。我有两个表填充数据。每隔一段时间,由于外键错误,我的应用程序将无法运行。我检查数据库,我的Artist表完全消失了。我查看了Samples表格,并删除了ArtistId列,只替换了以前不存在的“Artist”列(nvarchar)。我知道我没有删除数据,因为我的存储库中甚至没有删除方法。如果我从Samples表中删除所有数据,则会出现Artist表并运行我的应用程序。有没有人遇到这个问题或者有任何想法为什么我的设置可能会导致这种情况发生?提前致谢。