我在我的项目中覆盖了DbMigrationConfiguration种子方法,以获取用户权限的一些默认数据。目前,每次迁移都会覆盖我的数据。
这就是我现在正在做的事情:
$f0
和权限实体:
li $v0, 7 # $v0 =7
syscall # run read_double
li.d $f2, 4.3934567
mul.d $f12, $f0, $f2 # multiply user input by $f2. put the result in $f12
# for easy printing.
我希望这些数据只写一次,如果它们与表中当前的ID不同,则只添加新条目。如何执行此操作,以便每次迁移时都不会重置我的权限?
答案 0 :(得分:1)
我认为你想要的是AddIfNotExists
?
public static class EntityFrameworkExtension
{
public static void AddIfNotExists<T>(
this IDbSet<T> t, Func<T, object> func, params T[] objectsToAdd)
where T : class
{
foreach (var obj in objectsToAdd
.Where(obj => !t.Select(func).Contains(func.Invoke(obj))))
t.Add(obj);
}
}
所以你可以用
来调用它dbContext.Permissions.AddIfNotExists(p=>p.Id,
new Permission{/*values*/},
new Permission{/*values*/},
new Permission{/*values*/}
);
只会添加新条目