如何在 Class 库中添加 AddDbContext(没有 Startup.cs 文件)?
How to add AddDbContext in Class Library (No Startup.cs file)?
我们正在设置 Monitor Service(Worker Service
+ Class 库 A、B、C)作为 Worker Service 应用程序,而插件(DatasourceMonitor.OrderImport)是 Class Library .NetCore Framework
有 classes X、Y、Z(它们来自 class A、B、C)。
这些独立的 Class Libraries
可以访问具有独立连接(微架构)的 DbContext
(此处为 KPDbContext)。
Plugins-> X.dll 添加到 Worker Service。
文件夹结构如下:
在早期版本中,我们在 Worker Service 的 Program.cs 中添加了 DBContext as
services.AddDbContext<KPDbContext>(options =>
options.UseSqlServer(config.GetSection("ConnectionStrings:ServerAddress").ToString()));
但现在KPDbContext存在于另一个项目中,我们需要根据classes X,Y,Z.
单独访问
DEMOCODE(问题在这里)
public class X : A
{
public void Run(ServiceSettings settings, DataSource dataSource, string path)
{
// How to activate this KPDbContext ??????
using (var entities = new KPDbContext ())
{
entities.Interfaces.Add(new Interface()
{
CreatedDateTime = now,
TableId = 0,
TableName = "Order"
});
entities.SaveChanges();
}
我在上面创建了一个连接字符串 appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "data source=auto123.com;initial catalog=KAPPDBS;user id=sa;password=sa123!;MultipleActiveResultSets=True"
}
}
请多多指教,深陷其中。如果有任何文件,也请发送 link。
Class 图书馆没有 setup.cs
但你能用简单易行的方法解决这个问题吗?
首先: 在class库项目[=中创建一个class ex ModelsSetting.cs
16=]
其次:为return创建一个函数connectionString
代码
public static class ModelsSetting
{
public static string ConnectionString
{
get => "yourConnectionString"; // you can get form App.config fie
}
public static void Configure(this DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(ConnectionString);
}
第三次:改YourContext
if (!optionsBuilder.IsConfigured)
optionsBuilder.Configure();
我们正在设置 Monitor Service(Worker Service
+ Class 库 A、B、C)作为 Worker Service 应用程序,而插件(DatasourceMonitor.OrderImport)是 Class Library .NetCore Framework
有 classes X、Y、Z(它们来自 class A、B、C)。
这些独立的 Class Libraries
可以访问具有独立连接(微架构)的 DbContext
(此处为 KPDbContext)。
Plugins-> X.dll 添加到 Worker Service。
文件夹结构如下:
在早期版本中,我们在 Worker Service 的 Program.cs 中添加了 DBContext as
services.AddDbContext<KPDbContext>(options =>
options.UseSqlServer(config.GetSection("ConnectionStrings:ServerAddress").ToString()));
但现在KPDbContext存在于另一个项目中,我们需要根据classes X,Y,Z.
单独访问DEMOCODE(问题在这里)
public class X : A
{
public void Run(ServiceSettings settings, DataSource dataSource, string path)
{
// How to activate this KPDbContext ??????
using (var entities = new KPDbContext ())
{
entities.Interfaces.Add(new Interface()
{
CreatedDateTime = now,
TableId = 0,
TableName = "Order"
});
entities.SaveChanges();
}
我在上面创建了一个连接字符串 appsettings.json
{
"ConnectionStrings": {
"DefaultConnection": "data source=auto123.com;initial catalog=KAPPDBS;user id=sa;password=sa123!;MultipleActiveResultSets=True"
}
}
请多多指教,深陷其中。如果有任何文件,也请发送 link。
Class 图书馆没有 setup.cs
但你能用简单易行的方法解决这个问题吗?
首先: 在class库项目[=中创建一个class ex ModelsSetting.cs
16=]
其次:为return创建一个函数connectionString
代码
public static class ModelsSetting
{
public static string ConnectionString
{
get => "yourConnectionString"; // you can get form App.config fie
}
public static void Configure(this DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer(ConnectionString);
}
第三次:改YourContext
if (!optionsBuilder.IsConfigured)
optionsBuilder.Configure();