C # Служба Windows EntityFramework AddRange SaveChangesAsync Crash Service - PullRequest
0 голосов
/ 04 марта 2019

Я работаю в службе 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
...