Questions tagged «entity-framework-5»

ADO.NET实体框架版本5,包含对.net 4.5的支持

7
实体框架5更新记录
我一直在探索在ASP.NET MVC3环境中在Entity Framework 5中编辑/更新记录的不同方法,但是到目前为止,它们都没有打勾我需要的所有框。我会解释原因。 我发现了三种方法的优缺点: 方法1-加载原始记录,更新每个属性 var original = db.Users.Find(updatedUser.UserId); if (original != null) { original.BusinessEntityId = updatedUser.BusinessEntityId; original.Email = updatedUser.Email; original.EmployeeId = updatedUser.EmployeeId; original.Forename = updatedUser.Forename; original.Surname = updatedUser.Surname; original.Telephone = updatedUser.Telephone; original.Title = updatedUser.Title; original.Fax = updatedUser.Fax; original.ASPNetUserId = updatedUser.ASPNetUserId; db.SaveChanges(); } 优点 可以指定要更改的属性 视图不需要包含每个属性 缺点 在数据库上进行2次查询以加载原始文件,然后对其进行更新 方法2-加载原始记录,设置更改的值 …

5
非静态方法需要目标
我有一个控制器操作,该操作在Firefox本地和生产环境中以及本地IE上均能正常运行,但在生产环境中却无法正常运行。这是我的控制器动作: public ActionResult MNPurchase() { CalculationViewModel calculationViewModel = (CalculationViewModel)TempData["calculationViewModel"]; decimal OP = landTitleUnitOfWork.Sales.Find() .Where(x => x.Min >= calculationViewModel.SalesPrice) .FirstOrDefault() .OP; decimal MP = landTitleUnitOfWork.Sales.Find() .Where(x => x.Min >= calculationViewModel.MortgageAmount) .FirstOrDefault() .MP; calculationViewModel.LoanAmount = (OP + 100) - MP; calculationViewModel.LendersTitleInsurance = (calculationViewModel.LoanAmount + 850); return View(calculationViewModel); } 这是我在IE中得到的堆栈跟踪: 错误。处理您的请求时发生错误。System.Reflection.TargetException:非静态方法需要一个目标。在System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)在System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj,BindingFlags …

4
.ToList()、. AsEnumerable()和AsQueryable()有什么区别?
我知道第一个实现IQueryable和第二个实现的LINQ to Entities和LINQ to Objects的一些区别,IEnumerable并且我的问题范围在EF 5之内。 我的问题是这三种方法的技术区别是什么?我看到它们在许多情况下都可以工作。我也看到像使用它们的组合.ToList().AsQueryable()。 这些方法到底是什么意思? 是否有任何性能问题或某种原因导致使用一个而不是另一个? 例如,为什么要用一个.ToList().AsQueryable()代替.AsQueryable()?

5
EF LINQ包含多个嵌套实体
好的,我具有具有以下层次结构的三级实体:课程->模块->本章 这是原始的EF LINQ语句: Course course = db.Courses .Include(i => i.Modules.Select(s => s.Chapters)) .Single(x => x.Id == id); 现在,我想包含另一个与课程关联的名为Lab的实体。 如何包括实验室实体? 我尝试了以下操作,但没有成功: Course course = db.Courses .Include(i => i.Modules.Select(s => s.Chapters) && i.Lab) .Single(x => x.Id == id); 关于包括第二实体的任何想法? 任何建议或信息将不胜感激。谢谢!

12
EF5:无法将文件“ {0}”作为数据库“ {1}”附加
我遇到了此处所述的确切问题(请参阅“无法附加到已删除的MDF文件”部分),但是在那里没有告诉您解决问题的方法... 简而言之,问题在于删除.mdf文件后,当我尝试使用EF 5.0访问数据库时会引发以下异常。 DataException-> EntityException-> SqlException: 无法将文件“ {0}”作为数据库“ {1}”附加 我确实删除了数据库文件,现在在运行应用程序时希望它使用其初始化程序时收到该讨厌的错误消息。有任何解决这个问题的方法吗?


4
如何在Entity Framework 5中包含子对象的子对象
我正在使用Entity Framework 5 code first和ASP.NET MVC 3。 我在努力填充子对象的子对象。以下是我的课程。 应用类别 public class Application { // Partial list of properties public virtual ICollection<Child> Children { get; set; } } 子班: public class Child { // Partial list of properties public int ChildRelationshipTypeId { get; set; } public virtual ChildRelationshipType ChildRelationshipType { get; …

2
实体框架联接3个表
我正在尝试加入三个表,但我不明白该方法... 我完成了加入2张桌子 var entryPoint = dbContext.tbl_EntryPoint .Join(dbContext.tbl_Entry, c => c.EID, cm => cm.EID, (c, cm) => new { UID = cm.OwnerUID, TID = cm.TID, EID = c.EID, }). Where(a => a.UID == user.UID).Take(10); 我想在TID PK中包含tbl_Title表,并获取Title字段。 非常感谢

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 …

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

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"); …


26
无法将术语“ Update-Database”识别为cmdlet的名称
我正在使用EF5 beta1,并且之前可以运行“ Update-Database”。现在,我关闭了Visual Studio,现在无法运行它了。我收到以下错误: 术语“ Update-Database”不能识别为cmdlet,函数,脚本文件或可运行程序的名称。检查名称的拼写,或者是否包含路径,请验证路径是否正确,然后重试。在第1行:16个字符:+ Update-Database <<<< -verbose + CategoryInfo:ObjectNotFound:(Update-Database:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException 我尝试重新安装EF5b1,并且成功安装(已安装)后,“ Update-Database”仍然无法正常工作。 谁能帮忙???



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.