移行を追加した後、データベースを更新しようとするとエラーが発生します。
追加移行前の私のクラスは次のとおりです
public class Product
{
public Product() { }
public int ProductId { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public bool Istaxable { get; set; }
public string DefaultImage { get; set; }
public IList<Feature> Features { get; set; }
public IList<Descriptor> Descriptors { get; set; }
public IList<Image> Images { get; set; }
public IList<Category> Categories { get; set; }
}
public class Feature
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
}
ここで、Featureクラスに外部キーを追加し、次のようにクラスをリファクタリングしたいと思いました。
public class Product
{
public Product() { }
public int ProductId { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
public bool Istaxable { get; set; }
public string DefaultImage { get; set; }
public IList<Feature> Features { get; set; }
public IList<Descriptor> Descriptors { get; set; }
public IList<Image> Images { get; set; }
public IList<Category> Categories { get; set; }
}
public class Feature
{
public int Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Image { get; set; }
public string VideoLink { get; set; }
public int ProductId { get; set; }
public Product Product { get; set; }
}
Add-Migration
コマンドで移行を追加しました。コマンドを追加しましたUpdate-Database
。これが返されました。
ALTERTABLEステートメントがFOREIGNKEY制約「FK_dbo.ProductFeatures_dbo.Products_ProductId」と競合しました。データベース「CBL」、テーブル「dbo.Products」、列「ProductId」で競合が発生しました
この問題を解決し、移行を通常に戻すにはどうすればよいですか?