1

Code First テーブルにデータをシードしようとしていますが、おそらく間違っています。

個人を追加しようとすると、Department テーブルに重複した行が表示されます。

これが私がやろうとしていることの例です。


【テーブルパーソン】

int Id;
string Name;
Department Dept;

【テーブル部門】

int Id;
string DeparmentName;

1 つの方法では、Department に複数のエントリをシードしました。

次に、別の方法で個人を追加しようとしましたが、個人には部門オブジェクトが含まれているため、IT は重複する部門を部門テーブルに追加します。

以下のコードは、この投稿のために短くしようとしたため、私が持っているものとまったく同じではありませんが、考え方は同じです。

var dbContext = new Context();
// Get the Department for this user
var assignedDept = dbContext.Departments.FirstOrDefault(b => b.Id== 40);


var seededUser = new Person 
{
Department = assignedDept,
Name = "John Doe"
};


var db = new Context();
db.Person.Add(seededUser);
db.SaveChanges();
4

1 に答える 1

1

ここには本当に簡単な修正があります。

db.Person.AddOrUpdate(seededUser);

そして行に実際のIDを与えます

例えば

var seededUser = new Person 
{
    Id = 1,
    Department = assignedDept,
    Name = "John Doe"
};

これが実際の例です

https://github.com/lukemcgregor/StaticVoid.Blog/blob/master/Blog/Data/Migrations/Configuration.cs

于 2013-06-07T12:06:41.453 に答える