说我有以下实体:
public class Post
{
public int Id { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
}
从数据库检索Post对象时,需要将
Comments
集合转换为EntityCollection<T>
,以便可以检查有关集合的EF4相关数据,例如是否急于加载数据。不幸的是,如果我尝试直接从
ICollection<T>
转换为EntityCollection<T>
,由于Comments
属性是System.Collections.Generic.List<T>
且不能转换为EntityCollection<T>
的事实,我会遇到异常。那么,在使用代码优先时如何获取有关集合的EF信息?
最佳答案
作为评论,这可能更合适,但我希望EF4专家可以对此做出回应并解释发生了什么。不久前,我在CTP4上问了一个问题。一位来自EF 4食谱作者的回应说,在运行时,如果将该集合声明为virtual和ICollection(发问者显然正在这样做),则它将创建为EntityCollection。这显然没有发生。
此外,Rowan Miller(EF4团队的成员)编写了一个更高级的选项,发问者之前曾指出这是行不通的。这里发生了什么?当前的CTP是否不支持此功能,而上一个CTP是否支持?
Using CreateSourceQuery in CTP4 Code First
关于c# - 如何将EF4代码优先的ICollection转换为EntityCollection?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5035757/