c# - 使用 Entity Framework 4 如何过滤引用的实体集合

标签 c# linq entity-framework entity-framework-4

我正在使用 Entity Framework 4 和 C#。我有 Contact 对象,这些对象具有 Addresses 的引用实体集合。因此,一个Contact 可以有多个Address 实体。我想要做的是将返回的与 Contact 关联的 Addresses 过滤为仅来自多伦多市。

这是我正在使用的 LINQ 查询,但它会返回所有 Addresses,只要至少有一个具有 City == "Toronto"。我想将返回的 Address 实体限制为仅包含具有 City == "Toronto"Address 实体。我如何构造 LINQ 查询来执行此操作?

var vcontact = from c in context.Contacts
               orderby c.LastName
               where c.Addresses.Any(a => a.City == "Toronto")
               select c;

最佳答案

var vcontact = from c in context.Contacts
               orderby c.LastName
               where c.Addresses.Any(a => a.City == "Toronto")
               select new Contact
               {
                   LastName = c.LastName;
                   // map all remaining properties of Contact
                   Addresses = c.Addresses.Where(a => a.City == "Toronto")
               }; 

关于c# - 使用 Entity Framework 4 如何过滤引用的实体集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11750318/

相关文章:

c# - 在 C# 中使用 DataContext 和 System.Data.SQLite 创建数据库

c# - 如何将 IEnumerable<object> 转换为 List<IFoo>,其中每个对象都是一个 IFoo?

c# - 1对1的关系

c# - 是否有适用于 Cruise Control .NET 的 API?

c# - 如何使用 LINQ 获取存在于一个集合中但不存在于另一个不同类型中的整数列表?

c# - 重定向到 void 函数中的操作

c# - 未调用 DropCreateDatabaseAlways 种子

c# - 如何在 Entity Framework 6 中延迟加载关系?

c# - AWS EventBridge 事件未触发具有适当权限的 lambda 函数

c# - ComboBox 的复合 DisplayMember