我正在使用 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 列被删除并替换为以前不存在的“艺术家”列 (nvarchar)。我知道我没有删除数据,因为我的存储库中甚至没有删除方法。如果我从 Samples 表中删除所有数据,则会出现 Artist 表并且我的应用程序会运行。有没有人遇到过这个问题或知道为什么我的设置可能会导致这种情况发生?提前致谢。