4

これは Seed メソッドのコードです。

var city = new City { Name = "A" };

var nh = new List<Neigh>
{
    new Neigh { City = city, Name = "N1" },
    new Neigh { City = city, Name = "N2" },
    new Neigh { City = city, Name = "N3" },
    //new Neigh { City = city, Name = "N4" },
};

context.Neighs.AddOrUpdate(
    p => p.Name,
    nh.ToArray()
);

update-database を実行すると、すべてが期待どおりに機能します。問題なく複数回実行できます。ただし、ある時点で 4 番目の近隣のコメントを解除して update-database を再度実行すると、都市「A」の 2 つのレコードが作成され、N4 はその都市を指し、残りは元の都市を指します。

リストが更新された場合に重複する都市が挿入されないようにするにはどうすればよいですか?

4

1 に答える 1

3

都市が既に存在するかどうかを確認して、スクリプトを開始する必要があります。

var city = context.Cities.FirstOrDefault(c => c.Name == "A") 
                                     ?? new City { Name = "A" };
于 2013-05-31T07:09:16.813 に答える