2016-03-25 7 views
1

特定の役割を持つ管理ユーザーを作成する移行を作成したいとします。その役割が実際に存在し、その役割を持つ既存のユーザーがいないことを確認するためのアサーションを含めることにしましたが、明らかにレコードの挿入、レコードの選択、またはフィードバックの取得方法はありません。 DbMigration.Sqlでも空白を返します。移行中にレコードが存在するかどうかを調べる

これまでの移行では、すべてを1つの大きな.sqlファイルに書き込むことしかできません。

+0

は、ASP.NETのアイデンティティを使用して、このですか?その場合、UserManagerとRoleManagerが必要になります。 –

答えて

1

Seedメソッド内で行う必要があります。Configurationクラスの代わりに空白のマイグレーションを作成しないでください。

例(自分でそれを修正する!)

//checking is role exists 
var roleExist = context.Roles.Any(x => x.Name == "MyRole"); 

//no existing users with that role 
var withRoles = context.User2Roles.Any(x => x.Role.Name == "MyRole"); 

//Add or update admin user 
context.Users.AddOrUpdate(x => x.Email, new User { EMail = "Admin" }); 

//get admin and role after creating them, if it needed(code not presented) 
var role = context.Roles.Where(x => x.Name == "MyRole").First(); 
var admin = context.Users.Where(x => x.Email == "Admin").First(); 

//add role to admin if role not already was linked to him, checking code not presented 
context.User2Roles.Add(new User2Roles{ User = admin, Role = role }); 
context.SaveChanges(); 
関連する問題