asp.net-core-webapi - 带有 Asp.net 核心 webapi 应用程序的单独类库中的 DBcontext 类
问题描述
我试图通过给出这样的命令来添加迁移:
Add-Migration addedtable -Context SampleApplicationContext”抛出错误无法创建类型为“SampleApplicationContext”的对象。将“IDesignTimeDbContextFactory”的实现添加到项目中,或参见https://go.microsoft.com/fwlink/?linkid= 851728用于在设计时支持的其他模式。
我的启动项目是Sample.Api
,默认项目是datarepository\sampleapplicationdatabase
我SampleApplicationContext
在类库中请帮助某人解决此问题,在此先感谢
my SampleApplicationContext.cs code
-----------------------------------
namespace SampleApplicationDatabase
{
public class SampleApplicationContext:DbContext
{
public SampleApplicationContext(DbContextOptions<SampleApplicationContext> options) : base(options)
{
#if RELEASE
this.Database.Migrate();
#endif
}
public DbSet<AdminCredentials> AdminCredentials { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
foreach (var relationship in modelBuilder.Model.GetEntityTypes().SelectMany(e => e.GetForeignKeys()))
{
relationship.DeleteBehavior = DeleteBehavior.Restrict;
}
base.OnModelCreating(modelBuilder);
}
}
}
my sample.api appsetting code
-----------------------------
{
"SampleApplicationConnectionstring": {
"ConnectionString": "Server=TEKFRIDAY281;Database=SampleApplication;User ID=sa;Password=friday123!;Trusted_Connection=True;MultipleActiveResultSets=true;Integrated Security=false"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
my sample.api startup code
--------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using API_Interface;
using DataAccessLayer;
using IRepository;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Repository;
using SampleApplicationDatabase;
namespace Sample.API
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IData, Data>();
services.AddTransient<IUnitOfWork, UnitOfWork>();
services.AddControllers();
services.AddMvc();
services.AddDbContext<SampleApplicationContext>(options => options.UseSqlServer(Configuration.GetConnectionString("ConnectionString")));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
}
}
解决方案
尝试修复你的 appsettings json
"ConnectionStrings": {
"DefaultConnection": "Data Source=TEKFRIDAY281;Initial Catalog=SampleApplication;User ID=sa;Password=friday123!;Trusted_Connection=True;MultipleActiveResultSets=true;Integrated Security=false;"
},
和启动
services.AddDbContext<SampleApplicationContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
推荐阅读
- python - Python - 使用 ElementTree 解析带有重复标签的 XML
- javascript - 如何测量nodejs中异步函数的执行时间?
- python - 当每个子列表包含两个元素时,如何从嵌套列表创建字典?
- css - 引导覆盖视口中的中心微调器
- c# - C# NetCore EF 的继承类的外键
- laravel - Laravel:为所有模型创建一个通用函数
- github - 如何在 Github 页面上使用 env?
- bash - 使 shell 函数只能在导入文件的范围内找到
- linux - 无法访问 OpenSIPS CP Web 界面
- linux - 尝试仅添加组写入权限而不影响其他组权限