EntityFramework Migracje zapewnia metodę rozszerzenia na DbSet<T>
, specjalnie do siewu danych podczas migracji:EF: Czy można używać DbSet <T> .AddOrUpdate() poza migracjami?
void AddOrUpdate<TEntity>(this IDbSet<TEntity> set, params TEntity[] entities);
Czy to jest bezpieczne w użyciu w „zwykłej” kodu, to znaczy nie do siewu danych podczas migracji?
var blog = ...//detached instance from a request
using (var context = new BloggingContext())
{
context.Blogs.AddOrUpdate(blog);
context.SaveChanges();
}
Wydaje się działać prawidłowo, ale zastanawiam się, czy to ma jakieś wady w porównaniu do „tradycyjnych” 'wolnostojący jednostki sceario - jak to opisano, na przykład, on MSDN (ostatnia część artykułu):
using (var context = new BloggingContext())
{
context.Entry(blog).State = blog.BlogId == 0 ?
EntityState.Added :
EntityState.Modified;
context.SaveChanges();
}
Prawidłowo, nie został zaprojektowany do użytku poza migracjami. – bricelam
Dzięki za link! –
Więc ... jak masz to zrobić? – Izzy