如何重置inMemoryDatabase及其主键

时间:2019-04-25 14:41:51

标签: c# entity-framework asp.net-core-mvc

我在asp.net核心网络api中使用inMemoryDatabase, 它的定义如下: 在startup.cs中:

services.AddDbContext<TempContext>(options => options.UseInMemoryDatabase("ImageDataBase"));

在上下文中:

public class TempContext : DbContext
{
  public TempContext(DbContextOptions options) : base(options)
  { }

  public DbSet<Images> Images { get; set; }

图像类:

public class PathImages
{
  public int Id { get; set; }
  public string RawImage { get; set; }
  public string ProcessedImage { get; set; }
}

,我想根据用户在客户端执行的操作来重置它。 所以我在视图的控制器中尝试过:

_context.Images.RemoveRange(_context.Images.ToArray());
await _context2.SaveChangesAsync();

但主键未重置,我的视图需要将其重置。

然后我尝试:

await _context.Database.EnsureDeletedAsync();

await _context.Database.EnsureCreatedAsync();

但它也不会重置主键。

是否可以重置内存数据库,包括其主键?

1 个答案:

答案 0 :(得分:2)

目前不行。但是,它已在EF Core 3.0 Preview 4中修复。 EF Core 3.0 Preview 4 announcement和关联的Github issue