我一直在使用EF迁移一段时间,在我的项目中有超过100个迁移文件。 我希望将这些合并到一个单一的迁移前,即前进 – 即我想用一个新的版本replace现有的InitialCreate迁移,考虑到我所有的后续变化,所以我可以删除所有其他迁移文件。 如果我不关心丢失数据库中的所有数据,我很容易做到这一点,但我是。 我怎样才能做到这一点,同时保持所有的数据不变,还保留了从头开始重新创build数据库(无数据)的能力,只需运行Update-Database(我认为使用Julie Lerman概述的方法是不可能的 )?
我在MVC 4 aspnet网站上使用EF5。 在本地,一切正常,但是当我发布到IIS并尝试进入,我得到的错误 “System.Data.Entity.Internal.AppConfig”的types初始值设定项引发了一个exception。“ 详细的例外 创buildentityFramework的configuration节处理程序时发生错误:在应用程序configuration中多次指定了DbContexttypes“GdpSoftware.Server.Data.GdpSoftwareDbContext,GdpSoftware.Server.Data”的configuration。 每个上下文只能configuration一次。 (E:\ App \ web.config第104行) 我在StackOverflow中检查了上一个问题,并且已经通过Nuget EntityFramework卸载并重新安装,并且检查了每个项目中对它的每个引用是EF5。 我也检查了每个项目中选定的框架是4.5。 任何想法,什么可能会导致这个问题? 谢谢! 吉列尔莫。 web.config中 <?xml version="1.0" encoding="utf-8"?> <!– For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 –> <configuration> <configSections> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> <!– For more information on Entity Framework […]
又如何在Code First中创build多个标识列? 由于集群性能,常见的build议是使用自动增量整数列而不是使用newid()创build的GUID。 为了将列声明为自动增量,必须使用Annotation [DatabaseGenerated(DatabaseGeneratedOption.Identity)]指定它。 但是,你只能在一个表中有一个身份。 因此,从一个基本模型开始,如: public abstract class ModelBase { // the primary key public virtual Guid Id { get; set; } // a unique autoincrementing key public virtual int ClusterId { get; set; } } 我们如何设置它以便: Guid是由数据库自动生成的,而不是代码 ClusterId是自动增量的 entity framework代码首先不会抛出各种类似的错误: 不支持将主键列的属性“StoreGeneratedPattern”设置为“计算”的表的修改。 改用“身份”模式。 仅供参考 ,如果您确实想在代码中自动生成它,则可以跳过Id字段的注释,并执行如下操作: public abstract class AbstractContext : DbContext { /// […]
我将EF 5.0安装到.DAL中,现在我想要将EF 5.0安装到Nuget的.BLL中 但是默认的在线Nuget包总是出现在6.0中,这与在DAL中使用的5.0 EF一起使用时会出现错误。 我可以在哪里安装5.0版本的EntityFramework到我的Nuget包?
将我们的项目从使用entity framework5升级到entity framework6(尽pipeNuGets更新函数)后,我在我生成的实体类上得到以下错误: 错误1名称空间“System.Data”中不存在types或名称空间名称“对象” (你是否缺less程序集引用?) 我知道这是因为命名空间已经改变,我可以通过改变我的导入来手动修复错误: using System.Data.Objects; 并using System.Data.Objects.DataClasses; 要: using System.Data.Entity.Core.Objects; 然而,该文件生成,所以我需要重新应用此修复程序后, Update model from Database每个Update model from Database 。 有没有什么额外的改变,让EF生成没有这个错误的模型。
我有基于.NET 4.0的项目,但我需要在我的解决scheme中使用EntityFramework 5。 所以我从NuGet安装它。 之后,我将目标框架更改为.NET 4.5(我正在使用VS 2012)并重build项目。 但在参考文件夹中,我看到该项目使用EntityFramework.dll版本4.4.0.0。 何可以使用更新版本的EntityFramework? 在web.config <compilation debug="true" targetFramework="4.5"> <assemblies> <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> </assemblies> </compilation>
如果我对EF 5.0模型做了任何更改,VS似乎没有看到更改。 我已经尝试添加一个新的表格,在模型中显示出来,但是如果我尝试在某处使用它,表格不会显示在intellisense中,我不能使用它。 我也试着改变列的数据types,如果我看.edmx模型文件再次显示,但Visual Studio仍然会给我编译错误,因为我试图分配不正确的数据types。 如果我彻底删除EDMX,并重新创build它,那么更改工作正常。 但每次我应该能够从数据库更新模型并重build时,从数据库重新生成是很麻烦的。 之前我从来没有遇到EF的这些问题。 有谁知道这个问题的原因或解决办法? 谢谢。
使用(entity framework)EF5处理批量更新的最佳方法是什么? 我有两个我感兴趣的特殊情况: 更新一个字段(例如UpdateDate)的列表(列表)之间的100到100.000 Id的主键。 分别调用每个更新似乎要花费很多开销,并且需要很长时间。 在同一个对象(例如用户)中插入很多,也在100到100.000之间。 有什么好build议?
我一直在使用Visual Studio 2012 RC与试用许可证没有问题。 我昨天购买了Visual Studio 2012 Professional,安装了最新版本,并安装了Update 1。 我有一个多年来一直在努力的解决scheme/项目。 它有很多的迁移。 我在这个最新版本中运行了我的第一个add-migration TableX_NewField和update-database -sourcemigration:TableX_PreviousNewField 。 他们都跑没有问题。 然后,我运行update-database -script -sourcemigration:TableX_PreviousNewField并收到以下内容: PM> update-database -script -sourcemigration:TableX_PreviousNewField Applying code-based migrations: [201301151003149_TableX_NewField]. Applying code-based migration: 201301151003149_TableX_NewField. System.Runtime.InteropServices.COMException (0x8004000C): User canceled out of save dialog (Exception from HRESULT: 0x8004000C (OLE_E_PROMPTSAVECANCELLED)) at EnvDTE.ItemOperations.OpenFile(String FileName, String ViewKind) at System.Data.Entity.Migrations.Utilities.DomainDispatcher.OpenFile(String fileName) at System.Data.Entity.Migrations.Utilities.DomainDispatcher.OpenFile(String fileName) […]
我刚接触EF 5,并使用他们的代码优先的迁移工具,但我似乎遇到错误,当我尝试启用迁移。 我在包pipe理器控制台中inputEnable-Migrations ,然后说 在当前项目中找不到从DbContext派生的类。 编辑生成的configuration类以指定启用迁移的上下文。 为项目MyApp.MvcUI启用了代码优先迁移。 然后在我的MvcUI项目中创build一个Migrations文件夹和一个Configuration类。 事情是,我的DbContext生活在一个名为MyApp.Domain的类库项目中。 它应该做这个项目中的所有内容,并且应该没有问题find我的DbContext。