草庐IT

迁移虚拟化

全部标签

c# - 如何在 EF 迁移中使用 SqlResource 方法?

MSDN说这个方法“添加一个操作来执行一个SQL资源文件”。它的签名是:protectedinternalvoidSqlResource(stringsqlResource,AssemblyresourceAssembly=null,boolsuppressTransaction=false,objectanonymousArguments=null)而sqlResource参数描述为要执行的SQL资源文件的list资源名称。是一个“SQL资源文件”,和普通的.resx资源文件,如果是这样,它可以包含很多文件,那么如何在这个参数中指定资源文件的名称以及该资源中的文件?或者“SQL资源文

c# - 为什么我不能像在方法上那样在类变量上使用虚拟/覆盖?

在下面的示例中,我可以在inherited类中创建一个virtual方法Show(),然后override它在继承类中。我想用protected类变量prefix做同样的事情,但我得到了错误:Themodifier'virtual'isnotvalidforthisitem但是因为我不能在我的类中将这个变量定义为virtual/override,所以我得到了编译器警告:TestOverride234355.SecondaryTransaction.prefix'hidesinheritedmember'TestOverride234355.Transaction.prefix'.Use

c# - 在 Entity Framework 核心中合并迁移

是否可以将所有迁移文件合并为一个文件?我创建了初始迁移。dotnetefmigrationsaddInitialMigrationSource每当我进行一些模型更改时,我都会创建新的迁移更新。但是现在我的迁移更新文件太多了。是否可以将所有迁移文件合并为一个文件?当然不能删除数据库,我必须保留数据! 最佳答案 EF6.X有一个选项IgnoreChanges。这非常适合您的场景。但不幸的是,它不是EF核心中可用的功能。但有一个解决方法。第1步:删除Migrations文件夹中的所有迁移脚本。第2步:在包管理器控制台中:运行PM>Add-

c# - 显式接口(interface)实现不能是虚拟的

郑重声明,我已经看过这个connectitem但我真的不明白支持这个会有什么问题。假设我有以下代码:publicinterfaceIInterface{voidMethod();}publicclassBase:IInterface{virtualvoidIInterface.Method(){thrownewNotImplementedException();}}虚拟标识符有什么问题?使用virtual修饰符可以override指示基类中有不同的实现。我现在可以通过删除虚拟方法并像这样创建派生类来使其工作:publicclassDerived:IInterface{voidIInte

c# - 无法在 VS 2017 .NET Core 上为 Entity Framework 启用迁移

我刚刚安装了VS2017并创建了一个新的核心项目。在其中,我添加了:Microsoft.EntityFrameworkCore(1.1.0)Microsoft.NETCore.App(1.1.0)我还创建了一个名为Models的文件夹,其中包含一个类。然后,我转到程序包管理器控制台并执行enable-migrations,这样VS就会创建我需要的文件。但是,我收到的不是所需文件,而是以下错误。Theterm'enable-migration'isnotrecognizedasthenameofacmdlet,function,scriptfile,oroperableprogram.C

c# - 反射说接口(interface)方法在实现类型中是虚拟的,而实际上它们不是?

我在单元测试中有以下代码publicboolTestMethodsOf(){varimpl=typeof(T);varvalid=true;foreach(varifaceinimpl.GetInterfaces().Where(i=>typeof(I).IsAssignableFrom(i))){varmembers=iface.GetMethods();foreach(varmemberinmembers){Trace.Write("Checkingifmethod"+iface.Name+"."+member.Name+"isvirtual...");varimplMember=

c# - EF 代码第一次迁移 : MigrateDatabaseToLatestVersion without NUGET

我需要帮助来阐明EFCodeFirstMigrations如何在生产机器上运行。我有一些实体类和DbContext派生类来访问实体。现在,我想执行以下几项操作:当我的应用程序启动时,它必须创建数据库,如果数据库不存在的话;然后必须根据模型调整数据库架构;如果刚才创建了数据库,我想创建一些索引;另外,如果数据库是刚刚创建的,它必须由一些初始数据作为种子;所有这些事情都必须自动执行,无需任何NUGET命令或外部工具。我读过一些关于迁移的文章,但它们主要关注运行时的NUGET使用或纯自动数据库更新(通过MigrateDatabaseToLatestVersion)。我知道DbMigratio

c# - 忽略虚拟属性

我们有带EntityFramework的MVC4项目用于存储。对于我们的测试,我们最近开始使用Autofixture,它真的很棒。我们的模型图非常深,通常通过AutoFixture创建一个对象会创建整个图:Person->Team->Departments->Company->Contracts->....等问题是时间。创建对象最多需要一秒钟。这会导致测试缓慢。我发现自己经常做的事情是这样的:varcontract=fixture.Build().Without(c=>c.Person).Without(c=>c.PersonContractTemplate).Without(c=>c

c# - Entity Framework 4.3 迁移错误

我刚刚为迁移功能安装了EF4.3-beta1,但无法正常运行。我得到的错误:PM>Update-Database-VerboseUsingNuGetproject'Project.Domain'.UsingStartUpproject'ProjectWebSite'.System.InvalidOperationException:Nomigrationsconfigurationtypewasfoundintheassembly'Project.Domain'.atSystem.Data.Entity.Migrations.Design.ToolingFacade.BaseRunne

c# - EF Core 添加迁移调试

我如何进入带有断点的OnModelCreating并查看我的逻辑是否错误或者ModelBuilder是否正在做我不期望的事情?我看过很多关于如何调试实际迁移的帖子,但没有看到关于如何观察模型代码生成方式的帖子。我试图在我的一些实体上实现一些自定义属性,但它被忽略了;我想看看我的配置在生成模型代码时在做什么。 最佳答案 您应该能够在您的代码中调用Debugger.Launch()。即时调试器会在遇到该行时提示您附加调试器。 关于c#-EFCore添加迁移调试,我们在StackOverflo