为什么我收到错误“无法设置类型 Y 上的属性 X,因为集合已设置为 EntityCollection”?

2024-05-18

当我尝试将一个集合映射到 EF4 中的另一个集合时,出现此错误。

无法设置类型“Resource_EF810770B4FCA2E071F38C2F2EE328AAC216CA2A7BF157503E6658A42D7CF53A”的属性“ResourceLanguages”,因为集合已设置为 EntityCollection。

我试图像这样编码

foreach (var resource in resources)
{
    resourceLanguages = resourceLanguageRepositoty.GetAllByResourceId(resource.Id);
    resource.ResourceLanguages = resourceLanguages;
}

谁能帮我解决这个问题吗?


使用代理时,无法将集合分配给具体化导航属性。您找到了一种解决方案,但恕我直言,它看起来非常无效。首先,如果您的资源附加到上下文,则在需要语言时将通过延迟加载来加载语言,但您也可以使用预先加载并在单个查询中加载所有资源及其语言:

var resources = context.Resources.Include("ResourceLanguages").ToList();

您的解决方案会导致 N+1 数据库查询,其中 N 是集合中的资源数量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我收到错误“无法设置类型 Y 上的属性 X,因为集合已设置为 EntityCollection”? 的相关文章

  • 在 Entity Framework 4.0 中批处理 DB 命令

    我当前的项目需要每天与外部系统同步 同步基于复杂的导入文件结构 该结构通过广泛的业务逻辑进行解析和处理 由于业务逻辑的原因 我们决定在 NET 代码中进行此操作并重用现有的 BL 组件 而不是在存储过程或集成服务中编写相同的逻辑 BL 层位
  • asp.net mvc 模型与实体框架模型

    在 asp net mvc model 文件夹中创建模型是最佳实践吗 将这些模型与您的视图结合使用 并使用服务层将我的模型 调整 为 EF 模型 或者您是否使用过其他方法 这种方法的问题在于 大多数时候我的 自制 模型是 EF 模型的副本
  • 如何将Entity框架中的DbSet转换为ObjectQuery

    我正在使用 Code First 方法 并遇到一个需要将 DbSet 转换为 ObjectQuery 的问题 这就是我为转换所做的 ObjectContext objectContext IObjectContextAdapter db O
  • 实体框架 CTP4 代码优先:映射受保护的属性

    我想在模型上使用延迟加载集合 但我希望通过单独的方法来完成添加 删除功能 所以像这样 class Model protected virtual ICollection
  • 有没有办法在没有数据源的情况下创建 LINQ 查询作为变量?

    前言 我的核心问题与此非常相似 如何编写一个干净的存储库而不将 IQueryable 暴露给应用程序的其余部分 https stackoverflow com questions 1030992 how can i write a clea
  • 使用 EF4 将 Int32 转换为 Oracle number(5)

    我正在将 EF 4 数据库优先 完全由它生成的模型 与 Oracle 10g 数据库一起使用 并且我在一个字段上遇到问题 我的字段定义为NUMBER 5 在我的数据库中 在我的模型中 EF 将其定义为short 我的问题是我有一些值大于 3
  • 如何使用poco实体生成器

    我用的是VS2010 下载了C POCO 实体生成器 http visualstudiogallery msdn microsoft com en us 23df0450 5677 4926 96cc 173d02752313并安装了它 现
  • 实体框架视频教程[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有免费的视频教程深入讨论 EF 而不仅仅是基础知识 Thanks 下面的视频是我看过的关于实体框架
  • 实体框架 4 Single() vs First() vs FirstOrDefault()

    我花了很长时间寻找查询单个项目的不同方法的比较 以及何时使用每种方法 有谁有一个比较所有这些的链接 或者一个关于为什么你会使用其中一个而不是另一个的快速解释 还有更多我不知道的运营商吗 谢谢 以下是不同方法的概述 Find 当您想通过主键获
  • 实体框架代码优先和连接字符串

    我有一个使用 Entity Framework Code First 的小型 MVC 3 应用程序 并为模型使用此连接字符串 data source SQLEXPRESS Integrated Security SSPI AttachDBF
  • 实体框架 4.0:添加缩放器属性会出现错误(未映射的属性:11009)?

    我想向我的模型 表 之一添加一个新属性 基本上它是数据库中不存在的属性 但我需要将其添加到我的模型中 以便自定义生成工具 自跟踪实体生成器 将在自定义生成的文件中创建属性 我添加了一个缩放器属性 它是一个字符串 名为 testme 但它给了
  • 如何避免实体框架 TPT 继承中的多态行为,以便有效地查询基类型

    Overview 我首先使用实体 框架 4 3 代码和流畅的界面来设置我的 DbContext 我有一个基地Item具有继承此类型的其他类型的类 例如Event BlogPost 论坛主题 WikiPage等等 这些继承的类型与我认为实体框
  • 生成实体密钥

    我第一次对 Entity Framework 4 感到失望 事实证明 当 SQL CE 与 EF4 一起使用时 不支持自动生成主键 http social msdn microsoft com forums en US sqlce thre
  • .Net Framework 4.5 AddObject() 不出现

    我有一个我想要上的课Insert Update Delete其中的操作 Constructor public BaseManager Disable lazy loading this Context Configuration LazyL
  • 实体框架 4 - 在持久性未知上下文中使用 CTP5(代码优先)映射非公共属性

    我知道这个问题已经有了解决方案 例如这个问题 https stackoverflow com questions 3577891 entity framework ctp4 code first mapping protected prop
  • LINQ to Entities 区分大小写的比较

    这不是 LINQ to Entities 中区分大小写的比较 Thingies First t gt t Name ThingamaBob 如何使用 LINQ to Entities 实现区分大小写的比较 那是因为你正在使用LINQ 实体最
  • 将对象列表添加到 ef 中的上下文

    是否可以在不使用 foreach addObject 的情况下将对象列表添加到实体框架中的 Context 感谢帮助 从 EntityFramework 6 开始 您可以使用DbSet AddRange 方法 IEnumerable htt
  • 查找导航属性的相关 FK 属性

    在运行时 我想查找 EntityObject 是否也具有给定 NavigationProperty 的外键属性 我在下面的两个步骤中做到了这一点 我想这将需要一些元数据查询 我不确定如何测试元数据类是否指向特定 EntityObject 类
  • LINQ to Entities 如何更新记录

    好的 我对 EF 和 LINQ 都是新手 我已经弄清楚如何插入和删除 但由于某种原因更新似乎逃脱了我的掌握 这是我的代码示例 EntityDB dataBase new EntityDB Customer c new Customer Na
  • 实体框架在多对多更新场景中附加问题

    我有一个场景 我希望更新电影实体及其与流派的多对多关系 导航属性Genres电影中包含存根Genre只包含的对象GenreID因为我想节省查询所有流派的数据库 请参阅下面的代码 其相当不言自明 问题是我需要将 存根 流派附加到上下文 以便

随机推荐