C# 加载单个相关对象

C# 加载单个相关对象,c#,linq,entity-framework,lazy-loading,C#,Linq,Entity Framework,Lazy Loading,我需要从导航属性(ICollection)加载一个相关对象以发送到我的MVC视图 这样可以避免不必要的数据库访问和加载 我找到了关于加载相关对象的方法,但没有找到如何从列表中加载单个相关对象的方法 简而言之,我需要该对象及其导航属性中的一个相关对象 如何实现这一点?您不能使用Include来实现这一点。Include将带回导航属性的所有相关实体。您可以编写两个单独的查询,也可以在查询中编写联接 编写两个查询: var princess = context.Princesses.Find(id);

我需要从导航属性(ICollection)加载一个相关对象以发送到我的MVC视图

这样可以避免不必要的数据库访问和加载

我找到了关于加载相关对象的方法,但没有找到如何从列表中加载单个相关对象的方法

简而言之,我需要该对象及其导航属性中的一个相关对象


如何实现这一点?

您不能使用Include来实现这一点。Include将带回导航属性的所有相关实体。您可以编写两个单独的查询,也可以在查询中编写联接

编写两个查询:

var princess = context.Princesses.Find(id);
var unicorns = context.Unicorns.Where(u => u.PrincessId == id && u.UnicornName == "Blinky");

princess.Unicorns = unicorns.ToList();