所以,我是jugglin与tutorial,因为我需要优化一些查询。但是,我意识到在一对多关系中,EF倾向于首先检索所有相关行,并在内存中进行进一步查询 - 效率有点低,并且可能会将您的内存咀嚼到最后一位。有没有办法(或最佳实践)在EF中挂起一对多(或许多对多)关系,返回IQueryable而不是ICollection?
基本EF一对多
public class parent
{
[Key]
public int ParentId;
public string Name;
public virtual ICollection<Child> Childs;
}
public class Child
{
[Key]
public int ChildId;
public string Name;
public int ParentId;
[ForeignKey("ParentId")]
Public Parent Parent;
}
嗯,作为一点背景信息,我来自Laravel。也许只是我期待C#.Net上不存在。但是,在内存中记录3000+记录的Linq并不好玩,特别是如果你只采取少数几个记录。我错过了什么吗?我已经阅读了this问题,只是简单地通过id .Where
来检索关系,因为它会分散(并且不安全)ORM的定义 - 使密钥管理集中并且不需要上层知道什么定义了对象的关系。拜托,赐教。
修改 谢谢谁投了这个票。对此,我真的非常感激。欢呼声。