Nic*_* N. 5 c# entity-framework .net-core ef-core-2.0
我正在使用这样的内存EF Core数据库:
var options = new DbContextOptionsBuilder<DmpContext>()
.UseInMemoryDatabase("test")
.Options;
var context = new CustomContext(options);
Run Code Online (Sandbox Code Playgroud)
我正在使用仿冒品添加一些随机数据。
var resources = new Faker<Resource>()
.RuleFor(x => x.Name, x => x.Name.FullName())
.Generate(20);
Run Code Online (Sandbox Code Playgroud)
在此资源集合中,所有id仍为零。
当我执行AddRange时,我希望生成ID:
context.Resources.AddRange(resources);
context.SaveChangesAsync();
Run Code Online (Sandbox Code Playgroud)
但是它们不是生成的。
System.AggregateException:发生一个或多个错误。(无法跟踪实体类型'Resource'的实例,因为已经跟踪了另一个{'ResourceId'}具有相同键值的实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。
所以我想,然后让我直接设置它们,然后自己创建一个自动增量机制。那行得通。
但是,当我随后尝试测试我的Add方法时(这些方法将插入记录)。我无法在这些方法中设置ID,因为ID甚至不在界面中。再次,我希望EF自动生成ID,但是它会尝试插入ID 1(已经使用,因为我已经生成了ID 1,直到20)。
有谁知道如何告诉内存数据库中的EF核心始终自动递增其密钥?
| 归档时间: |
|
| 查看次数: |
1748 次 |
| 最近记录: |