0
我想在我的Windows服务应用程序(面向.NET Framework 4.6.2)使用EF核心2.0。为了让事情变得有趣,我不希望只是像这样EF核心和在Windows服务的DI
DbContext ctx = new DbContext(connectionString)
我想与依赖注入使用它创建实例(StructureMap 4.5.2)。
我有一个IDbContext和我的DbContext的样子:
public DbContext(string connectionString): base(new DbContextOptionsBuilder().UseSqlServer(connectionString).Options)
{}
我之所以“奇怪”的男星是,我不知道在哪里或如何配置EF核心的Windows服务。我在哪里或如何告诉windows service在app.config中使用连接字符串。
我已经为现在做的是,我告诉StructureMap注入的连接字符串,像这样:
new Container(config =>
{
// Register stuff in container, using the StructureMap APIs...
config.Scan(_ =>
{
_.TheCallingAssembly();
_.WithDefaultConventions();
_.LookForRegistries();
});
config.For<IDbContext>().Use<DbContext>().Ctor<string>("connectionString").Is(_connectionString);
});
有没有办法在.NET核心MVC应用程序做到这一点类似这样的:
services.AddDbContext<DbContext>(options =>
options.UseSqlServer(connectionString));
服务是IServiceCollection实例。
有人可以请指出我在正确的方向如何以最好的方式做到这一点?