C# 使用Model First,如何预加载连接表以实现快速、亚秒级的连接?
首先,我想使用实体框架模型跨几个表进行快速、亚秒级的连接。简化数据模型类似于以下内容: 视频:ID主键;名字 标签:ID主键;名字 TaggedVideos:TagID-FK;视频识别FK 当表未在实体框架中建模或公开时,是否有方法预加载TaggedVideos?在搜索带有特定标签的所有视频时,我试图避免数据库被点击。理想情况下,所有三个表都将加载到集合中,然后我可以使用PLINQ进行连接 如果我向TaggedVideos添加另一列,我可以实现这一点,但我更喜欢一个优雅的解决方案,它不会扰乱数据模型C# 使用Model First,如何预加载连接表以实现快速、亚秒级的连接?,c#,linq,entity-framework,sql-server-ce,plinq,C#,Linq,Entity Framework,Sql Server Ce,Plinq,首先,我想使用实体框架模型跨几个表进行快速、亚秒级的连接。简化数据模型类似于以下内容: 视频:ID主键;名字 标签:ID主键;名字 TaggedVideos:TagID-FK;视频识别FK 当表未在实体框架中建模或公开时,是否有方法预加载TaggedVideos?在搜索带有特定标签的所有视频时,我试图避免数据库被点击。理想情况下,所有三个表都将加载到集合中,然后我可以使用PLINQ进行连接 如果我向TaggedVideos添加另一列,我可以实现这一点,但我更喜欢一个优雅的解决方案,它不会扰乱数据
任何帮助都将不胜感激。缓存标签,并确保对视频集合具有向后导航属性 然后,您可以访问标记的缓存版本并查找相关的视频,而无需加入
如果不想缓存整个视频,请在缓存代码中选择use some like Videos.Selectv=>v.Id以仅选择Id并缓存该Id。当我对缓存的标记使用反向导航时,会出现一个错误:ObjectContext实例已被释放,无法再用于需要连接的操作。这看起来缓存仍在命中数据库,错误来自于我关闭了用于构建缓存的上下文。我可能是错的。@james您需要做几件事,首先确保您已经断开了项,您可以通过添加。AsNoTracking到您的查询中来执行此操作,请参阅我在这里的帖子:其次确保您的集合是通过在查询结束时使用.ToArray枚举的。我仍然使用EF 4.0,它不支持AsNoTracking。是时候升级了。我明天就试试看。