私は単純なエンティティを持っています:
public class Hall
{
[Key]
public int Id {get; set;}
public string Name [get; set;}
}
次に、テーブルにデータを入力するためSeed
に使用する方法で、次のようにします。AddOrUpdate
var hall1 = new Hall { Name = "French" };
var hall2 = new Hall { Name = "German" };
var hall3 = new Hall { Name = "Japanese" };
context.Halls.AddOrUpdate(
h => h.Name,
hall1,
hall2,
hall3
);
次に、パッケージ管理コンソールで実行します。
Add-Migration Current
Update-Database
すべて問題ありません。テーブル「Hall」に3つの行があります。しかし、パッケージ管理コンソールでUpdate-Database
再度実行すると、すでに5つの行があります。
Id Name
1 French
2 Japaneese
3 German
4 French
5 Japanese
なんで?5行ではなく3行にする必要があると思います。Id
代わりにプロパティを使用しようとしましName
たが、違いはありません。
アップデート:
このコードは同じ結果を生成します:
var hall1 = new Hall { Id = 1, Name = "French" };
var hall2 = new Hall { Id = 2, Name = "German" };
var hall3 = new Hall { Id = 3, Name = "Japanese" };
context.Halls.AddOrUpdate(
h => h.Id,
hall1);
context.Halls.AddOrUpdate(
h => h.Id,
hall2);
context.Halls.AddOrUpdate(
h => h.Id,
hall3);
また、nugetを介して最新のEntityFrameworkをインストールしています。