Tag: entity framework

VS2013 Debugger + Entity Framework:“运行时拒绝评估expression式”,崩溃

在针对实时SQL Server的代码debuggingunit testing时,VS2013 Ultimatedebugging器中的Entity Framework 6.0.1遇到了很多问题。 包含实体的variables不能在debugging器中查看。 例如,如果我对我的DbContext执行LINQ查询并刷新结果视图以实际执行查询,则结果值为“子项无法评估”。 如果我ToArray()它,所以现在variables是一个实体的数组而不是一个IQueryable,数组中的每个结果是“无法评估expression式”。 如果我将该数组中的单个实体值存储到一个variables中并尝试查看它,则会得到“此时运行时拒绝评估expression式”。 通常,通过涉及访问实体属性的行,F10会导致Visual Studio崩溃。 这不会发生,如果我运行testing对嘲弄的假DbSet。 这是一个已知的问题? 有没有办法来解决这个问题?

映射对象的集合

我试图首次将Automapper引入到应用程序中,但是我一直收到一个错误,说我有一些无效的参数。 我的模特: namespace StoreGradesLib.Models { public class Store { [Key] public int StoreID { get; set; } [Required] [MaxLength(120)] public string StoreName { get; set; } [Required] [MaxLength(20)] public string StoreNumber { get; set; } [Required] [MaxLength(120)] public string ManagerName { get; set; } [Required] public long PhoneNumber { get; set; } [Required] public string […]

entity framework:如何解决“FOREIGN KEY约束可能导致周期或多个级联path”?

关于这个问题有很多问题,但我解决不了我的情况。 有人可以看看这个: 我有一张与Doctor和Secretary桌有一对多关系的Doctor 。 最后一个表都是从Employee表派生而来的,该表与sqlmembershipprovider创build的预定义Users表具有共享主键关系。 Users表和Roles表之间似乎有许多关系,我没有任何关系。 我的问题是在我的Employee表和Users表之间创build一个(零,一) – (一)关系,然后我们以它们之间的共享主键关系和引发的错误结束。 (这个问题有更好的解决方法吗?) 这里是错误的: 引入表“aspnet_UsersInRoles”上的FOREIGN KEY约束“FK_dbo.aspnet_UsersInRoles_dbo.aspnet_Users_UserId”可能会导致循环或多个级联path。 指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。 无法创build约束。 查看以前的错误。 这里是我的代码和反向工程后的会员代码: public class Office { public Office() { this.Doctors = new HashSet<Doctor>(); this.Secretaries = new HashSet<Secretary>(); } [Key] public System.Guid OfficeId { get; set; } public virtual ICollection<Doctor> Doctors { get; set; […]

EntityType'Category'没有定义键。 定义这个EntityType的关键

开发一个基本的ASP.net MVC 4应用程序。 它是一个简单的产品目录应用程序,在我有2个数据库表(“类别”和“产品”) “产品”表中有“类别ID”(类别表中的主键)的外键引用。 当我运行应用程序,我得到错误信息(下面列出)。 System.Data.Entity.Edm.EdmEntityType: : EntityType 'Category' has no key defined. Define the key for this EntityType. System.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'Category' is based on type 'Category' that has no keys defined 这看起来像一个新手常见的错误,我没有检查所有相关的解决scheme,“实体键”没有定义的键。 但仍然是我的问题没有解决,请帮助我理解这个问题,以及这个问题的正确解决scheme是什么。 以下是我的模型类 Category.cs namespace ChemicalStore.Models { public partial class Category { public int CatId { get; set; } public string […]

entity framework和上下文处理

什么时候应该用entity framework调用DbContext.dispose()? 这个想象的方法不好吗? public static string GetName(string userId) { var context = new DomainDbContext(); var userName = context.UserNameItems.FirstOrDefault(x => x.UserId == userId); context.Dispose(); return userName; } 这是否更好? public static string GetName(string userId) { string userName; using(var context = new DomainDbContext()) { userName = context.UserNameItems.FirstOrDefault(x => x.UserId == userId); context.Dispose(); } return userName; } 这是更好的,也就是说,如果使用using()时不应该调用context.Dispose()? public […]

entity framework。 查看返回重复logging

我使用包含视图的entity framework。 我有问题: var data = this.context.vwRevenues .Where(x => x.revenue >= 0); .OrderByDescending(x => x.year) .ThenByDescending(x => x.month) .Take(10) .ToList(); 这个查询返回一组实体,但第一个实体等于第五个。 data[0] == data[4] // true 我从SQL跟踪器采取SQL脚本这个查询,并运行到SQLpipe理Studio,它返回不同的logging。

导入SQL Server的CONTAINS()作为模型定义的函数

我想在我的entity framework模型中导入SQL Server的CONTAINS()函数,以便我可以在我的LINQ查询中使用它。 我已经添加到我的EDM: <Function Name="FullTextSearch" ReturnType="Edm.Boolean"> <Parameter Name="Filter" Type="Edm.String" /> <DefiningExpression> CONTAINS(*, Filter) </DefiningExpression> </Function> 添加创build我的方法存根: [EdmFunction("MyModelNamespace", "FullTextSearch")] public static bool FullTextSearch(string filter) { throw new NotSupportedException("This function is only for L2E query."); } 我试图调用这样的function: from product in Products where MyModel.FullTextSearch("FORMSOF(INFLECTIONAL, robe)") select product 引发以下exception: The query syntax is not valid. Near term '*' […]

findSQL语句的LINQ语句最简单的方法是什么?

我是销售ASP.NET MVC3应用程序的公司的SQL Server DBA,该应用程序使用LINQ和Entity Framework 4来访问所有数据库。 当我在LINQ生成的SQL Server计划caching中发现一个效率低下的查询时,我希望能够在源代码中find该LINQ语句,以便对其进行优化。 find生成给定SQL语句的LINQ的最佳方法是什么? 例如,有什么办法把一个条目放在一个configuration文件中,或者以某种方式修饰代码,以便类和方法名或LINQ语句本身作为注释包含在生成的SQL中?

将EF迁移整合到新的InitialCreate中

我一直在使用EF迁移一段时间,在我的项目中有超过100个迁移文件。 我希望将这些合并到一个单一的迁移前,即前进 – 即我想用一个新的版本replace现有的InitialCreate迁移,考虑到我所有的后续变化,所以我可以删除所有其他迁移文件。 如果我不关心丢失数据库中的所有数据,我很容易做到这一点,但我是。 我怎样才能做到这一点,同时保持所有的数据不变,还保留了从头开始重新创build数据库(无数据)的能力,只需运行Update-Database(我认为使用Julie Lerman概述的方法是不可能的 )?

从一个没有ONE字段的entityframework中检索一个对象

我正在使用entity framework来连接数据库。 我有一个小问题: 我有一个表有一个varbinary(MAX)列(文件stream)。 我使用SQL请求来pipe理“数据”部分,但其余的EF(文件的元数据)。 我有一个代码,必须获得文件的所有文件ID,文件名,GUID,修改date…。 这根本不需要“数据”字段。 有没有办法检索一个列表,但没有填写这个列? 就像是 context.Files.Where(f=>f.xyz).Exclude(f=>f.Data).ToList(); ?? 我知道我可以创build匿名对象,但是我需要将结果传递给一个方法,所以没有匿名方法。 我不想把它放在一个匿名types列表中,然后创build一个非匿名types(File)的列表。 目标是避免这种情况: using(RsSolutionsEntities context = new RsSolutionsEntities()) { var file = context.Files .Where(f => f.Id == idFile) .Select(f => new { f.Id, f.MimeType, f.Size, f.FileName, f.DataType, f.DateModification, f.FileId }).FirstOrDefault(); return new File() { DataType = file.DataType, DateModification = file.DateModification, FileId = file.FileId, FileName […]