问题标签 [entitycollection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1114 浏览

c# - 如何将 EF4 代码优先 ICollection 转换为 EntityCollection?

假设我有以下实体:

当我从数据库中检索 Post 对象时,我需要将Comments集合转换为一个EntityCollection<T>,以便我可以检查有关集合的一些 EF4 相关数据,例如数据是否已预先加载。

不幸的是,如果我尝试从ICollection<T>to直接转换EntityCollection<T>,我会得到一个异常,因为该Comments属性是 aSystem.Collections.Generic.List<T>并且不能转换为 a EntityCollection<T>

那么在使用代码优先时如何获取有关集合的 EF 信息?

0 投票
1 回答
1162 浏览

asp.net-mvc - 添加到 EntityCollection 添加到实体框架中集合的末尾?

我正在尝试创建一个视图,用户可以在其中添加项目而无需转到新视图(该场景是一种 CV 网站,用户可以在其中添加有关工作经验、技能等的信息,它会去一个新的视图添加每一个小东西似乎很荒谬)。

所以我有一个编辑视图,它显示了许多已添加项目的文本框,如果用户添加了一个项目,我会调用一个 ajax 调用来获取新的集合。

以下是有问题的方法:

现在问题来了:当调用 NewProgram 方法时,它会向 Consultant 对象添加一个新程序并创建一个新的 ViewModel 以发送回,但它将新程序添加到 EntityCollection 的开头,而不是结尾。但是,当您发布整个表单并再次打开编辑视图时,列表会将新添加的程序放在最后。这很奇怪。用户会认为他/她在列表的开头添加了一个项目,但如果他们再次返回页面,他们会在末尾找到新项目。

为什么要这样做,有什么办法可以让 NewProgram() 直接在末尾添加新程序?

如果有人认为“他应该使用 ViewModel”和 DTO 而不是直接使用 EF 对象,那么我已经走这条路很长一段时间了(Entity Framework and MVC 3: The relationship could not be changed因为一个或多个外键属性是不可为空的),到目前为止,没有人明确地向我展示如何实现这一点,并且仍然能够在同一个视图中添加和删除项目。要么是维护集合的索引有问题,要么是实体框架不让我保存……代码变成了一场噩梦。

这样我至少有可以理解的代码,唯一的事情是我需要以“正常”顺序完成添加,即在集合末尾添加......

有任何想法吗?

顺便提一句:

这行得通,但似乎没有必要首先将新程序添加到 Consultant 对象,在没有新程序的情况下创建 ViewModel,然后将其单独添加到 ViewModel...

0 投票
3 回答
3455 浏览

c# - EntityFramework EntityCollection 观察 CollectionChanged

我首先在应用程序中使用 EntityFramework 数据库。我想以某种方式收到关于EntityCollection我的 ViewModel 中的更改的通知。它不直接支持INotifyCollectionChanged(为什么?)而且我还没有成功找到另一个解决方案。

这是我最近的尝试,由于该ListChanged事件似乎没有引发,所以它不起作用:

有谁知道我如何观察到的变化EntityCollection

0 投票
3 回答
11550 浏览

c# - 如何对绑定到 EF EntityCollection 的 WinForms DataGridView 进行排序

我正在尝试将 WinForms DataGridView 绑定到EntityCollection<T>EntityFramework4 对象。问题是,我不知道如何让它(自动)排序。

我所做的只是将 BindingSource 的 DataSource 属性设置为实体的集合。

MyBindingSource.DataSource = CurrentItem.InvoiceNotes;

我真的希望我可以添加一个简单的配置来让它工作;我真的不想将我的 EF 集合包装在一个新的 BindingList 容器中。

0 投票
2 回答
2531 浏览

asp.net - LINQ to Entities:查询示例

有人可以告诉我如何从这个模型中获取 LINQ to Entities 中用户的用户组关系吗?

我需要一个列表才能在病房后以这种方式循环它:

如果您可以提供一些有关如何:

  • 根据用户 ID 获取用户的角色权限“路径”
  • 根据用户 ID 获取用户角色
  • 根据也有帮助的角色 ID 获取特定角色的所有用户。
0 投票
1 回答
703 浏览

entity-framework-4 - 如何有效地在实体框架中设置多对多 EntityCollection?

当 Entity Framework 为与多对多关系表连接的两个数据库表(比如说 Table1 和 Table2)生成 ObjectContext 时,它不会为外部参照表创建对象,而是选择在任一端的集合属性关系。所以在 Table1 你有EntityCollection<Table2> Table2s,在 Table2 你有EntityCollection<Table2> Table1s. 在大多数情况下,这实际上非常棒......

但是,在这种情况下,我有一个整数列表,表示应该在 Table1.Table2s 集合中的 Table2 行的数据库 ID。

我看不到使用实体键设置该集合的任何方法,所以我坚持将它们选择到 ObjectContext 中,这已经是无缘无故要做的大量工作。我让自己希望 LINQ-to-Entities 能够智能地推迟执行并像我想要的那样在 SQL 服务器上执行它(尽管我的 Where 使用包含,它可能会或可能不会正确转换为 SQL 中的 IN())。所以我可以做到:

但是没有EntityCollection<T>.AddRange(IEnumerable<T>)或没有,IEnumerable<T>.ToEntityCollection<T>()当然也没有扩展方法,所以我现在不知道如何处理这些结果。我能做的就是

这看起来很荒谬,我知道会迫使很多不必要的评估。

有没有一种“正确的”,或者,也许是“不那么蹩脚”的方式来做到这一点?

0 投票
2 回答
211 浏览

asp.net - Linq to Entities:无法让集合查询工作

我正在努力使用 L2E 获取记录集合。这是模型视图: http: //pascalc.nougen.com/stuffs/aspnet_linq_model2.png

我有一个用户标识符,它与 1 个或多个用户组相关联,这些用户组本身链接到 TestCase。我想获取与用户 id X 关联的所有组的所有 TestCases。

我还注意到,对于与 2 个(或更多)相关联的用户,我没有获得所有项目。

到目前为止,我是这样做的:

authenticatedUserProjects 仅返回 1 个项目,其中用户链接到 2 个项目。并且 allTestcases 没有返回任何结果,尽管 TestCases 中有大约 8 个条目与与用户所属的同一用户组之一相关联的项目相关联。

谢谢

0 投票
2 回答
1159 浏览

c# - 带有简单 int[] 的 IEnumerable Any()

快速提问:我正在将 EF4 EntityCollection 中的实体 ID 与循环中的简单 int[] 进行比较。我想做类似的事情:

我只是不确定如何将数组中的值与 EntityCollection 中的值进行比较,或者换句话说,使用什么来代替我上面编写的 value 属性。

0 投票
1 回答
502 浏览

c# - 如何改进有关 EntityCollections 的代码?

这是我不相信的代码。请检查我如何将实体集合作为参数传递。

如果没有,我会收到一个错误。就像这个代码一样。

在此处输入图像描述

我得到的错误如下:

InvalidOperationException 未处理。

无法将该对象添加到 EntityCollection 或 EntityReference。无法将附加到 ObjectContext 的对象添加到不与源对象关联的 EntityCollection 或 EntityReference。

0 投票
1 回答
2049 浏览

c# - 列出到 EntityCollection

我一直在尝试从我的条目类的多选列表框中添加一些选定的项目。

经过一些研究,我发现这个解决方案可以工作:

但即使它解决了我遇到的第一个问题,我现在也得到了一个新问题。一个我似乎无法找到解决方案的...我什至尝试分离实体,但没有运气。

我现在得到的错误是:

当此 RelatedEnd 的所有者为空时,不允许请求的操作。使用默认构造函数创建的 RelatedEnd 对象只能在序列化期间用作容器。

有人遇到过这个问题吗?

谢谢。