Questions tagged «entity-framework»

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

14
无法在LINQ to Entities查询中构造实体
由实体框架生成的实体类型称为产品。我已经写了这个查询 public IQueryable<Product> GetProducts(int categoryID) { return from p in db.Products where p.CategoryID== categoryID select new Product { Name = p.Name}; } 下面的代码引发以下错误: “无法在LINQ to Entities查询中构造实体或复杂类型Shop.Product” var products = productRepository.GetProducts(1).Tolist(); 但是当我使用select p代替select new Product { Name = p.Name};它时,它可以正常工作。 如何执行自定义选择部分?

25
将datetime2数据类型转换为datetime数据类型会导致超出范围的值
我有一个包含5列的数据表,其中一行被数据填充,然后通过事务保存到数据库中。 保存时,返回错误: 从datetime2数据类型到datetime数据类型的转换导致值超出范围 从读取的角度看,它意味着DateTime2我的数据表的类型为,数据库为a DateTime;那是错的。 日期列设置为DateTime如下所示: new DataColumn("myDate", Type.GetType("System.DateTime")) 题 可以用代码解决此问题,还是必须在数据库级别进行某些更改?

7
实体框架-包含多个级别的属性
Include()方法对于对象列表非常有效。但是,如果我需要深入两个层次怎么办?例如,下面的方法将返回具有此处显示的包含属性的ApplicationServers。但是,ApplicationsWithOverrideGroup是另一个包含其他复杂对象的容器。我也可以在该属性上执行Include()吗?或如何才能完全加载该属性? 就目前而言,此方法: public IEnumerable<ApplicationServer> GetAll() { return this.Database.ApplicationServers .Include(x => x.ApplicationsWithOverrideGroup) .Include(x => x.ApplicationWithGroupToForceInstallList) .Include(x => x.CustomVariableGroups) .ToList(); } 将仅填充Enabled属性(在下面),而不填充Application或CustomVariableGroup属性(在下面)。我如何做到这一点? public class ApplicationWithOverrideVariableGroup : EntityBase { public bool Enabled { get; set; } public Application Application { get; set; } public CustomVariableGroup CustomVariableGroup { get; set; } }


30
错误消息“无法加载一种或多种请求的类型。检索LoaderExceptions属性以获取更多信息。
我已经使用Entity Framework,SQL Server 2000,Visual Studio 2008和Enterprise Library 开发了一个应用程序。 它在本地绝对可以正常工作,但是当我将项目部署到测试环境时,出现以下错误: 无法加载一种或多种请求的类型。检索LoaderExceptions属性以获取更多信息 堆栈跟踪:位于System.Reflection.Module._GetTypesInternal(StackCrawlMark&stackMark) 在System.Reflection.Assembly.GetTypes() 在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadTypesFromAssembly(LoadingContext上下文) 在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.InternalLoadAssemblyFromCache(LoadingContext上下文)处 在System.Data.Metadata.Edm.ObjectItemCollection.AssemblyCacheEntry.LoadAssemblyFromCache(Assembly程序集,Boolean loadReferencedAssemblies,字典2 knownAssemblies, Dictionary2&typesInLoading,List`1&错误) 在System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyFromCache(ObjectItemCollection objectItemCollection,程序集程序集,布尔loadReferencedAssemblies) 在System.Data.Metadata.Edm.ObjectItemCollection.LoadAssemblyForType(类型类型) 在System.Data.Metadata.Edm.MetadataWorkspace.LoadAssemblyForType(类型类型,程序集callingAssembly) 在System.Data.Objects.ObjectContext.CreateQuery [T](字符串queryString,ObjectParameter []参数)处 实体框架似乎有问题,有什么线索如何解决?

3
使用事务还是SaveChanges(false)和AcceptAllChanges()?
我一直在研究交易和看来,他们照顾自己的EF只要我传递false到SaveChanges(),然后调用AcceptAllChanges(),如果没有错误: SaveChanges(false); // ... AcceptAllChanges(); 如果出现问题怎么办?我不必回滚,或者一旦方法超出范围,交易是否结束? 在事务中途分配的所有intentiy列会如何处理?我想如果有人在我的坏事发生之前在我的事后添加了一条记录,那么这意味着将丢失一个Identity值。 有什么理由TransactionScope在我的代码中使用标准类吗?

17
使用实体框架将更改保存到SQL Server数据库时,一个或多个实体的验证失败
我想将“编辑”保存到数据库,并且在ASP.NET MVC 3 / C#中使用“实体框架”代码优先,但出现错误。在我的Event类中,我有DateTime和TimeSpan数据类型,但是在我的数据库中,我分别有Date和time。这可能是原因吗?将更改保存到数据库之前,如何在代码中强制转换为适当的数据类型。 public class Event { public int EventId { get; set; } public int CategoryId { get; set; } public int PlaceId { get; set; } public string Title { get; set; } public decimal Price { get; set; } public DateTime EventDate { get; set; …

7
使用GUID作为主键的最佳实践是什么,特别是在性能方面?
我有一个几乎在所有表中都使用GUID作为主键的应用程序,并且我已经读到在将GUID用作主键时存在有关性能的问题。老实说,我还没有遇到任何问题,但是我将要启动一个新的应用程序,并且我仍然想将GUID用作主键,但是我正在考虑使用复合主键(GUID以及其他领域) ) 我使用GUID是因为当您具有不同的环境(例如“生产”,“测试”和“开发”数据库)以及在数据库之间进行数据迁移时,它们易于管理。 我将使用Entity Framework 4.3,然后在将其插入数据库之前在应用程序代码中分配Guid。(即,我不想让SQL生成Guid)。 为避免基于此方法的性能受到影响,创建基于GUID的主键的最佳实践是什么?

30
实体框架:“存储更新,插入或删除语句影响了意外的行数(0)。” [关闭]
关闭。这个问题需要调试细节。它当前不接受答案。 想改善这个问题吗?更新问题,这样成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 我正在使用实体框架填充网格控件。有时,当我进行更新时,会出现以下错误: 存储更新,插入或删除语句影响了意外的行数(0)。自加载实体以来,实体可能已被修改或删除。刷新ObjectStateManager条目。 我不知道如何重现这一点。但这可能与我进行更新的紧密程度有关。是否有人看到过此消息,或者有人知道错误消息指的是什么? 编辑:不幸的是,我不再自由重现我在这里遇到的问题,因为我退出了这个项目,不记得我是否最终找到了解决方案,是否有其他开发人员修复了该问题,或者我是否在解决该问题。因此,我不能接受任何答案。

7
实体框架超时
使用功能导入需要超过30秒才能完成时,使用实体框架(EF)导致超时。我尝试了以下操作,但无法解决此问题: 我Default Command Timeout=300000在这里建议的具有EDMX文件的项目的App.Config文件中添加了连接字符串。 这是我的连接字符串如下所示: <add name="MyEntityConnectionString" connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl| res://*/MyEntities.msl; provider=System.Data.SqlClient;provider connection string=" Data Source=trekdevbox;Initial Catalog=StarTrekDatabase; Persist Security Info=True;User ID=JamesTKirk;Password=IsFriendsWithSpock; MultipleActiveResultSets=True;Default Command Timeout=300000;"" providerName="System.Data.EntityClient" /> 我尝试直接在存储库中设置CommandTimeout,如下所示: private TrekEntities context = new TrekEntities(); public IEnumerable<TrekMatches> GetKirksFriends() { this.context.CommandTimeout = 180; return this.context.GetKirksFriends(); } 我还能做些什么来使EF超时?这仅适用于非常大的数据集。小型数据集一切正常。 这是我遇到的错误之一: System.Data.EntityCommandExecutionException:执行命令定义时发生错误。有关详细信息,请参见内部异常。---> System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时或服务器没有响应。 好的-我已经开始工作了,这很愚蠢。我同时将连接字符串和Default Command Timeout=300000和CommandTimeout都设置为180。Default Command Timeout从连接字符串中删除时,它可以正常工作。因此,答案是在上下文对象的存储库中手动设置CommandTimeout,如下所示: …

21
如何在实体框架中删除多行(无foreach)
我正在使用实体框架从表中删除多个项目。没有外键/父对象,因此我无法使用OnDeleteCascade处理它。 现在我正在这样做: var widgets = context.Widgets .Where(w => w.WidgetId == widgetId); foreach (Widget widget in widgets) { context.Widgets.DeleteObject(widget); } context.SaveChanges(); 它有效,但是foreach使我感到困扰。我正在使用EF4,但我不想执行SQL。我只想确保我没有遗漏任何东西-这是一样好,对吗?我可以使用扩展方法或辅助程序对其进行抽象,但是在某个地方我们仍将进行foreach,对吗?

12
如何仅将Linq中DateTime类型中的没有日期的Date与带有实体框架的SQL进行比较?
有没有一种方法可以比较两个DateTime变量,Linq2Sql但是可以忽略“时间”部分。 该应用程序将项目存储在数据库中并添加发布日期。我想保留确切的时间,但仍然可以按时完成日期。 我想进行比较12/3/89 12:43:34,12/3/89 11:22:12而忽略了一天中的实际时间,因此两者都被认为是相同的。 我想我可以将一天中的所有时间都设置为00:00:00比较之前,但实际上我确实想知道一天中的时间,我也只想按日期进行比较。 我发现一些具有相同问题的代码,它们分别比较年,月和日。有一个更好的方法吗?

2
忽略Entity Framework 4.1 Code First中的类属性
我的理解是,该[NotMapped]属性直到CTP中的EF 5才可用,因此我们不能在生产中使用它。 如何在EF 4.1中标记要忽略的属性? 更新:我注意到其他奇怪的事情。我可以使用该[NotMapped]属性,但是由于某些原因,即使使用public bool Disposed { get; private set; }标记为,EF 4.1仍会在数据库中创建一个名为Disposed的列[NotMapped]。IDisposeable当然,该类实现了,但我不认为这应该有多重要。有什么想法吗?

14
重置实体框架迁移
我已经IgnoreChanges对初始迁移进行了重新整理,但是现在我想删除所有迁移,并从所有逻辑开始进行初始迁移。 当我删除文件夹中的迁移并尝试并Add-Migration不会生成完整文件时(它是空的-因为自上次迁移以来,我没有进行任何更改,但是现在删除了该迁移)。 是否有任何Disable-Migrations命令,所以我可以重新运行Enable-Migrations?


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.