问题标签 [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.
c# - 如何将 EF4 代码优先 ICollection 转换为 EntityCollection?
假设我有以下实体:
当我从数据库中检索 Post 对象时,我需要将Comments
集合转换为一个EntityCollection<T>
,以便我可以检查有关集合的一些 EF4 相关数据,例如数据是否已预先加载。
不幸的是,如果我尝试从ICollection<T>
to直接转换EntityCollection<T>
,我会得到一个异常,因为该Comments
属性是 aSystem.Collections.Generic.List<T>
并且不能转换为 a EntityCollection<T>
。
那么在使用代码优先时如何获取有关集合的 EF 信息?
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...
c# - EntityFramework EntityCollection 观察 CollectionChanged
我首先在应用程序中使用 EntityFramework 数据库。我想以某种方式收到关于EntityCollection
我的 ViewModel 中的更改的通知。它不直接支持INotifyCollectionChanged
(为什么?)而且我还没有成功找到另一个解决方案。
这是我最近的尝试,由于该ListChanged
事件似乎没有引发,所以它不起作用:
有谁知道我如何观察到的变化EntityCollection
?
担
c# - 如何对绑定到 EF EntityCollection 的 WinForms DataGridView 进行排序
我正在尝试将 WinForms DataGridView 绑定到EntityCollection<T>
EntityFramework4 对象。问题是,我不知道如何让它(自动)排序。
我所做的只是将 BindingSource 的 DataSource 属性设置为实体的集合。
MyBindingSource.DataSource = CurrentItem.InvoiceNotes;
我真的希望我可以添加一个简单的配置来让它工作;我真的不想将我的 EF 集合包装在一个新的 BindingList 容器中。
asp.net - LINQ to Entities:查询示例
有人可以告诉我如何从这个模型中获取 LINQ to Entities 中用户的用户组关系吗?
我需要一个列表才能在病房后以这种方式循环它:
如果您可以提供一些有关如何:
- 根据用户 ID 获取用户的角色权限“路径”
- 根据用户 ID 获取用户角色
- 根据也有帮助的角色 ID 获取特定角色的所有用户。
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>()
当然也没有扩展方法,所以我现在不知道如何处理这些结果。我能做的就是
这看起来很荒谬,我知道会迫使很多不必要的评估。
有没有一种“正确的”,或者,也许是“不那么蹩脚”的方式来做到这一点?
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 个条目与与用户所属的同一用户组之一相关联的项目相关联。
谢谢
c# - 带有简单 int[] 的 IEnumerable Any()
快速提问:我正在将 EF4 EntityCollection 中的实体 ID 与循环中的简单 int[] 进行比较。我想做类似的事情:
我只是不确定如何将数组中的值与 EntityCollection 中的值进行比较,或者换句话说,使用什么来代替我上面编写的 value 属性。
c# - 如何改进有关 EntityCollections 的代码?
这是我不相信的代码。请检查我如何将实体集合作为参数传递。
如果没有,我会收到一个错误。就像这个代码一样。
我得到的错误如下:
InvalidOperationException 未处理。
无法将该对象添加到 EntityCollection 或 EntityReference。无法将附加到 ObjectContext 的对象添加到不与源对象关联的 EntityCollection 或 EntityReference。
c# - 列出到 EntityCollection
我一直在尝试从我的条目类的多选列表框中添加一些选定的项目。
经过一些研究,我发现这个解决方案可以工作:
但即使它解决了我遇到的第一个问题,我现在也得到了一个新问题。一个我似乎无法找到解决方案的...我什至尝试分离实体,但没有运气。
我现在得到的错误是:
当此 RelatedEnd 的所有者为空时,不允许请求的操作。使用默认构造函数创建的 RelatedEnd 对象只能在序列化期间用作容器。
有人遇到过这个问题吗?
谢谢。