Я работаю в службе Windows с языком C # и использую EntityFrameWork. Я добавляю список с помощью AddRange и сохраняю с помощью SaveChangesAsync ();При запуске программа SaveChangesAsync вылетала и закрывалась.но используйте SaceChanges () Сохранено без проблем.
public class ApplicationDbContext : IdentityDbContext<IUnitOfWork>
{
public ApplicationDbContext() : base("DefaultConnection")
{
Configuration.LazyLoadingEnabled = true;
((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 180;
}}
UOW:
public async Task<int> SaveAllChangesAsync()
{
return await SaveChangesAsync();
}
public IEnumerable<TEntity> AddThisRange<TEntity>(IEnumerable<TEntity> entities) where TEntity : class
{
return ((DbSet<TEntity>)Set<TEntity>()).AddRange(entities);
}
Использование:
private readonly IDbSet<WebUrl> _webUrls;
private readonly List<WebUrl> _tempWebUrlsToInsert;
public MalwareDetectingManager(IUnitOfWork uow)
{
_uow = uow;
_webUrls = uow.Set<WebUrl>();}
создать список:
var newWebUrl = new WebUrl
{
Url = normalizedUrl,
Status = UrlStatus.BadUrl,
LastUpdate = DateTime.Now,
AddedVersion = _version,
UpdatedVersion = _version
};
_tempWebUrlsToInsert.Add(newWebUrl);
сохранить:
_uow.AddThisRange(_tempWebUrlsToInsert);
await _uow.SaveAllChangesAsync(); //Crash Program