Questions tagged «entity-framework»

有关ADO.NET实体框架的问题,请参阅.NET Framework的对象关系映射(ORM)工具。如果适用,请添加特定于版本的标签。请勿对实体框架核心问题使用此标签。请改用entity-framework-core。

7
如何为多个上下文启用EF迁移到单独的数据库?
如何为同一项目中的多个数据库上下文启用Entity Framework 5(版本5.0.0)迁移,其中每个上下文都对应于其自己的数据库?当我Enable-Migrations在PM控制台(Visual Studio 2012)中运行时,出现错误,因为存在多个上下文: PM> Enable-Migrations More than one context type was found in the assembly 'DatabaseService'. To enable migrations for DatabaseService.Models.Product1DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext. To enable migrations for DatabaseService.Models.Product2DbContext, use Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext. 如果我运行,则Enable-Migrations -ContextTypeName DatabaseService.Models.Product1DbContext不允许运行,Enable-Migrations -ContextTypeName DatabaseService.Models.Product2DbContext因为迁移已存在:Migrations have already been enabled in project 'DatabaseService'. To overwrite …


19
ASP.NET MVC-附加类型为“ MODELNAME”的实体失败,因为相同类型的另一个实体已经具有相同的主键值
简而言之,在POSTing包装器模型并将一个条目的状态更改为“已修改”期间会引发异常。在更改状态之前,将状态设置为“已分离”,但是调用Attach()确实会引发相同的错误。我正在使用EF6。 请在下面找到我的代码(型号名称已更改,以便于阅读) 模型 // Wrapper classes public class AViewModel { public A a { get; set; } public List<B> b { get; set; } public C c { get; set; } } 控制者 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } if (!canUserAccessA(id.Value)) return …

3
DbArithmeticExpression参数必须具有数字通用类型
TimeSpan time24 = new TimeSpan(24, 0, 0); TimeSpan time18 = new TimeSpan(18, 0, 0); // first get today's sleeping hours List<Model.Sleep> sleeps = context.Sleeps.Where( o => (clientDateTime - o.ClientDateTimeStamp < time24) && o.ClientDateTimeStamp.TimeOfDay > time18 && clientDateTime.TimeOfDay < time18 && o.UserID == userid).ToList(); 此Linq表达式引发此异常: DbArithmeticExpression arguments must have a numeric …


8
使用SQL Server 2008和SQL Server 2005以及日期时间
我已经针对2008数据库建立了一个实体框架模型。对于2008数据库,一切正常。当我尝试在2005数据库上更新实体时,出现此错误。 使用的SQL Server版本不支持数据类型'datetime2 建立数据库时,我没有使用任何2008功能。我在代码中找不到对datetime2的任何引用。并且,是的,该列在数据库中定义为“ datetime”。

5
如何“热身”实体框架?什么时候变“冷”?
不,我第二个问题的答案不是冬天。 前言: 最近,我对Entity Framework进行了大量研究,而令我困扰的是当查询未预热时的性能,即所谓的冷查询。 我浏览了有关Entity Framework 5.0 的性能注意事项的文章。作者介绍了“ 热”和“ 冷”查询的概念以及它们之间的区别,我也注意到自己而并不知道它们的存在。在这里可能值得一提的是,我只有六个月的经验。 现在,我知道如果我想从性能方面更好地理解框架,我可以进一步研究哪些主题。不幸的是,Internet上的大多数信息已经过时或过分带有主观性,因此,我无法找到有关“ 热与冷”查询主题的任何其他信息。 到目前为止,基本上我注意到的是,每当我需要重新编译或回收利用命中时,我的初始查询就会变得非常缓慢。如预期的那样,任何后续数据读取都是快速的(主观的)。 我们将迁移到Windows Server 2012,IIS8和SQL Server 2012,作为一名初中生,我实际上赢得了自己在其余测试之前进行测试的机会。我很高兴他们引入了一个预热模块,该模块可以使我的应用程序为第一个请求做好准备。但是,我不确定如何继续预热我的实体框架。 我已经知道值得做的事情: 根据建议提前生成我的视图。 最终将我的模型移到单独的装配中。 按照常识,我考虑做的可能是错误的方法: 在应用程序启动时读取虚拟数据,以进行预热,生成和验证模型。 问题: 何时在我的实体框架上实现高可用性的最佳方法是什么? 在什么情况下,实体框架会再次“变冷”?(重新编译,回收,IIS重新启动等)

1
实体框架代码优先-Fluent Api与数据注释的优缺点
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 6年前关闭。 改善这个问题 首先使用Entity Framework代码创建数据库时,可以从代码中提取很多数据库模型。流利的API和/或属性可用于微调模型。 与数据注释相比,Fluent Api有哪些优缺点?换句话说:即使在某些情况下两种方法都可以使用,在哪种情况下应优先使用另一种方法?

7
实体框架迁移重命名表和列
我重命名了几个实体及其导航属性,并在EF 5中生成了一个新的Migration。与EF迁移中的重命名一样,默认情况下,它将删除对象并重新创建它们。那不是我想要的,所以我几乎不得不从头开始构建迁移文件。 public override void Up() { DropForeignKey("dbo.ReportSectionGroups", "Report_Id", "dbo.Reports"); DropForeignKey("dbo.ReportSections", "Group_Id", "dbo.ReportSectionGroups"); DropForeignKey("dbo.Editables", "Section_Id", "dbo.ReportSections"); DropIndex("dbo.ReportSectionGroups", new[] { "Report_Id" }); DropIndex("dbo.ReportSections", new[] { "Group_Id" }); DropIndex("dbo.Editables", new[] { "Section_Id" }); RenameTable("dbo.ReportSections", "dbo.ReportPages"); RenameTable("dbo.ReportSectionGroups", "dbo.ReportSections"); RenameColumn("dbo.ReportPages", "Group_Id", "Section_Id"); AddForeignKey("dbo.ReportSections", "Report_Id", "dbo.Reports", "Id"); AddForeignKey("dbo.ReportPages", "Section_Id", "dbo.ReportSections", "Id"); AddForeignKey("dbo.Editables", "Page_Id", "dbo.ReportPages", "Id"); …


14
如何仅比较EF中DateTime中的日期组件?
我有两个日期值,一个已经存储在数据库中,另一个由用户使用DatePicker选择。用例是从数据库中搜索特定日期。 先前在数据库中输入的值始终具有12:00:00的时间分量,而从选择器输入的日期具有不同的时间分量。 我只对日期部分感兴趣,并且想忽略时间部分。 在C#中进行这种比较的方法是什么? 另外,如何在LINQ中做到这一点? 更新:在LINQ to Entities上,以下工作正常。 e => DateTime.Compare(e.FirstDate.Value, SecondDate) >= 0

4
LINQ to Entities无法识别该方法
尝试执行linq查询时出现以下错误: LINQ to Entities无法识别方法“ Boolean IsCharityMatching(System.String,System.String)”方法,并且该方法无法转换为商店表达式。 我已经阅读了很多以前的问题,人们会遇到相同的错误,如果我理解正确,那是因为LINQ to Entities要求将整个linq查询表达式转换为服务器查询,因此您不能调用外部方法在里面。我还无法将情景转换成可以正常使用的东西,而且我的大脑开始融化,所以我希望有人可以指出正确的方向。我们正在使用Entity Framework和规范模式(并且我都是新手)。 这是使用规范的代码: ISpecification<Charity> specification = new CharitySearchSpecification(charityTitle, charityReference); charities = charitiesRepository.Find(specification).OrderBy(p => p.RegisteredName).ToList(); 这是linq表达式: public System.Linq.Expressions.Expression<Func<Charity, bool>> IsSatisfied() { return p => p.IsCharityMatching(this.charityName, this.charityReference); } 这是IsCharityMatching方法: public bool IsCharityMatching(string name, string referenceNumber) { bool exists = true; if (!String.IsNullOrEmpty(name)) { if …

12
撤消实体框架实体中的更改
这可能是一个琐碎的问题,但是:由于ADO.NET实体框架自动跟踪(在生成的实体中)更改并因此保留原始值,因此如何回滚对实体对象所做的更改? 我有一个允许用户在网格视图中编辑一组“客户”实体的表单。 现在,我有两个按钮“接受”和“还原”:如果单击“接受”,我将调用Context.SaveChanges()并将更改的对象写回到数据库中。如果单击“还原”,我希望所有对象都获得其原始属性值。那将是什么代码? 谢谢

5
我应该如何编辑实体框架连接字符串?
最近,我不得不编辑我的app.config文件,以更改Entity Framework数据模型(.edmx文件)的连接字符串。但是我想知道:是否可以使用设计器来编辑EF连接字符串? 原始连接字符串由“实体数据模型”向导自动生成。然后,不能更改连接字符串-在.edmx设计器的属性窗口中将其禁用。我希望避免(如果可以)手动编辑XML(在app.config中),因此我想知道是否有办法返回到原始向导屏幕来更改连接字符串并让该工具编辑app.config文件为了我。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.