将模型手动添加到Entity Framework上下文InMemoryTest ASP.NET Core 2

时间:2018-09-14 10:44:45

标签: c# unit-testing .net-core entity-framework-core xunit

我建立了一个通用存储库,该存储库将用作在构造函数中接收上下文的NuGet包。 我想测试存储库InMemory。问题是该上下文存在于另一个解决方案上,当我尝试构建假选项时,该上下文中的模型将为null,因为我仅使用默认上下文。

var options = new DbContextOptionsBuilder<DbContext>()
                .UseInMemoryDatabase(databaseName: "test")
                .Options;
var context = new DbContext(options);
var sut = new Repository<TestEntity>(context);
sut.Add(new TestEntity());

我遇到一个例外:

  

找不到实体类型'TestEntity'。确保实体   类型已添加到模型中。

我尝试将模型手动添加到选项:

var builder = new ModelBuilder(new ConventionSet());
builder.Entity<TestEntity>();
var options = new DbContextOptionsBuilder<DbContext>()
                .UseModel(builder.Model)
                .UseInMemoryDatabase(databaseName: "test")
                .Options;

但是现在它在调用Add方法时抛出:

  

发生一个或多个错误。 (对象引用未设置为实例   一个对象。)

任何人都知道如何将模型手动添加到EF吗?我在互联网上找不到类似的内容。 谢谢

0 个答案:

没有答案