【发布时间】:2018-09-22 09:53:44
【问题描述】:
如何将一个 DbContext 用于多个应用程序?
我有一个 WCF 应用程序(Net TCP 绑定)接口,并且实现与 DbContext 配合得很好。需要来自同一个应用程序的 API,由于配置的原因,我不想在 WCF 上启用 Http 绑定,而且我有很多合同。所以我决定通过 DI 将服务导入 asp.net core 2,它工作正常,但通过 DbContext 连接到 Db 总是返回 null。
数据库上下文:
public class AppDbContext : DbContext
{
public AppDbContext(DbContextOptions<AppDbContext> options) : base(options){}
public AppDbContext()
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer(@"Server=.\;Database=Database;Trusted_Connection=True;MultipleActiveResultSets=true");
}
}
}
服务实现
public partial class GeneralService : IGeneralService, IDisposable
{
protected readonly AppDbContext Db = new AppDbContext();
public void Dispose()
{
Db.Dispose();
}
}
Asp.net 核心启动
public void ConfigureServices(IServiceCollection services)
{
const string connection = @"Server=.\;Database=Database;Trusted_Connection=True;MultipleActiveResultSets=true";
services.AddDbContext<AppDbContext>(options => options.UseSqlServer(connection));
services.AddSingleton<IGeneralService,GeneralService>();
services.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver());
}
我做错了什么,我能做什么我真的不想使用代理
【问题讨论】:
标签: asp.net-mvc wcf .net-core entity-framework-core ef-core-2.0