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實例。
有人可以請指出我在正確的方向如何以最好的方式做到這一點?