- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我第一次使用 asp 5\core1,我在设置 Entity Framework dbcontext 时遇到问题
我的对象有一个类库
public class Utilizador
{
public Utilizador()
{
}
public int id { get; set; }
}
然后我有一个 Web Api 项目,其中包含对我的类和上下文的引用
public class Context : DbContext
{
public Context(DbContextOptions<Context> options)
: base(options)
{
}
public DbSet<Utilizador> Utilizadores { get; set; }
}
关于 Entity Framework ,我的 package.json 是这样的
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Mvc.WebApiCompatShim": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview1-final" ,
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
},
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview1-final",
"imports": [
"portable-net45+win8+dnxcore50",
"portable-net45+win8"
]
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8"
]
}
}
最后是我的 startup.cs
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddEntityFramework().AddEntityFrameworkSqlServer().AddDbContext<Context>(options => options.UseSqlServer(Configuration["ConnectionStrings:DefaultConnection"]));
}
我使用了命令 Add-Migrations,它创建了我的数据库和一个名为 __MigrationsHistory 的表,但没有为我的类(class)创建任何表,所以我使用了 Add-Migration“mycontext”,但一切都停止了,现在每次我尝试进行迁移我得到这个错误:
System.ArgumentException: GenericArguments[0], 'WebApiSolution.Migrations.Context', on 'Microsoft.EntityFrameworkCore.Infrastructure.IDbContextFactory`1[TContext]' violates the constraint of type 'TContext'. ---> System.TypeLoadException: GenericArguments[0], 'WebApiSolution.Migrations.Context', on 'Microsoft.EntityFrameworkCore.Infrastructure.IDbContextFactory`1[TContext]' violates the constraint of type parameter 'TContext'. at System.RuntimeTypeHandle.Instantiate(RuntimeTypeHandle handle, IntPtr* pInst, Int32 numGenericArgs, ObjectHandleOnStack type)
at System.RuntimeTypeHandle.Instantiate(Type[] inst)
at System.RuntimeType.MakeGenericType(Type[] instantiation)
--- End of inner exception stack trace ---
at System.RuntimeType.ValidateGenericArguments(MemberInfo definition, RuntimeType[] genericArguments, Exception e)
at System.RuntimeType.MakeGenericType(Type[] instantiation)
at Microsoft.EntityFrameworkCore.Design.DbContextOperations.FindContextFactory(Type contextType)
at Microsoft.EntityFrameworkCore.Design.DbContextOperations.FindContextTypes()
at Microsoft.EntityFrameworkCore.Design.DbContextOperations.FindContextType(String name)
at Microsoft.EntityFrameworkCore.Design.DbContextOperations.CreateContext(String contextType)
at Microsoft.EntityFrameworkCore.Design.MigrationsOperations.RemoveMigration(String contextType, Boolean force)
at Microsoft.EntityFrameworkCore.Tools.Cli.MigrationsRemoveCommand.<>c__DisplayClass0_0.<Configure>b__0()
at Microsoft.Extensions.CommandLineUtils.CommandLineApplication.Execute(String[] args)
at Microsoft.EntityFrameworkCore.Tools.Cli.Program.Main(String[] args)
GenericArguments[0], 'WebApiSolution.Migrations.Context', on 'Microsoft.EntityFrameworkCore.Infrastructure.IDbContextFactory`1[TContext]' violates the constraint of type 'TContext'.
有人可以指出我正确的方向吗?我做错了什么,我在这里错过了什么?
谢谢
最佳答案
尝试将数据库初始化器添加到您的上下文中:
编辑:我最初的回答是基于 Entity Framework 6。Database.EnsureCreated() 听起来像是最新版本中的等效方法:
public Context(DbContextOptions<Context> options)
: base(options)
{
Database.EnsureCreated();
}
关于c# - 'Microsoft.EntityFrameworkCore.Infrastructure.IDbContextFactory`1[TContext ]' violates the constraint of type parameter ' TContext',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37461729/
我正在为学校做作业。该代码应该从文件中读取并创建一个数组,然后对数组的值进行排序以输出某些信息。只要我在文件中有 3 行以上的信息,它就可以正常工作。如果没有,我会收到以下错误: First-chan
在我的表中,我有一个唯一的约束。在 hibernate 中,当我添加一个违反该约束的项目时,我想捕获它,因此它将更新而不是创建一个项目。 当我没有设置 try-catch block 时 up
我正在尝试将 Excel 文件中的一些数据插入到表中。我有两个excel文件如下: Test2: 5/12/2012 5/18/2012 ABQ ANC 1 52 5/12/2012
我有自定义约束: @Target({FIELD, METHOD}) @Retention(RetentionPolicy.RUNTIME) @ConstraintComposition(Composi
“违反任何时间序列”和“违反所有时间序列”这两个选项有什么区别?我可以想象前者会轻松做什么,但我不知道后者会做什么。 所有时间序列?它的射程有多长?为什么它有一个 for 选项? 最佳答案 What'
我正在尝试初始化 DataEditor 的对象,我的DataEditor类(class)工具interface IDataEditor where T : IEditableObject . Data
我正在使用带有 java 插件 4.0 和 findbugs 插件 3.4.3 的 SonarQube 5.6。使用此配置,findbugs 报告的外部类违规不会被报告为 Sonar 违规。以下是代码
我正在使用 DbUnit 框架对我的 JPA 实体 bean 进行单元测试。我已经从数据库表生成了实体。还将 DB 数据导出到 xml 文件中,DbUnit 在执行测试时可以使用这些文件。 但是对于每
我写了这段简单的代码来动态分配一个 4 维数组: #include #include int**** alloc() { int i,j,k; int ****matrix;
我的 Java 程序出现问题。我使用 MS Access 作为数据库,并使用 UCanAccess 连接到数据库。 当我尝试将文本插入数据库时,出现异常: net.ucanaccess.jdbc.
我正在尝试使用埃拉托斯特尼筛法解决 SPOJ 的 PRIME1 问题。该代码对于较小的整数工作正常,但对于长整数显示以下错误 - "Unhandled exception at 0x770d15ee
我不明白这个案例,但这对我来说真的很重要,请帮助我... void __fastcall TForm1::Button4Click(TObject *Sender) { String masu
请看我的代码: adj = (int *)calloc(n * n, sizeof(int)); scanf("%d", &m); for (i = 0; i < m; i++) { scan
下面这段代码有什么问题以及如何修复它。 #include using namespace std; template class guard{ public: guard(Func1 firs
我有一个多线程 C# 应用程序,它创建文件,打开它们进行处理,然后在完成后删除它们。此应用程序可以预期处理 1 - 100 个文件。有点随机(很可能归因于应用程序的多线程性质)当我尝试在处理后删除文件
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
是否有可能在出现段错误后恢复 C 程序的正常执行流程? struct A { int x; }; A* a = 0; a->x = 123; // this is where segmenta
在 Magento 中使用信用卡/借记卡下订单时出现以下错误: Order saving error: SQLSTATE[23000]: Integrity constraint violation:
我正在处理属于 SDK 一部分的文件。当我在 phpstorm 中将文件提交到 svn 时,我收到关于 Unused definition SomeFunction 的警告,其中 SomeFuncti
简而言之,我有一个 C# 应用程序执行大量 mciSendString 调用(通过 dllimport)来控制 wav 文件播放(本质上是打开、播放、暂停、停止、状态、关闭)。运行一段时间后,应用程序
我是一名优秀的程序员,十分优秀!