【发布时间】:2019-04-22 00:56:21
【问题描述】:
我是 linq 和 C# 的新手,试图通过某个属性查询复杂对象。场景是我有一个currentPerson 对象列表,其中包括PersonAddressesDisplay 属性,它是一个字符串。我正在循环尝试通过地址(PersonAddressesDisplay)在数据库中查找已保存的person 对象的列表。现在由于某些奇怪的原因,我也得到了不需要的结果(不同的字符串也出现在 matchAddresses 列表中)。查询如下:
foreach(var currentPerson in PersonsListToSave) {
.
.
.
var matchAddresses = db.PersonAddresses.Include(p => p.Persons).AsEnumerable().
Where(add => currentPerson.Addresses
.Any(personAddress => personAddress.PersonAddressesDisplay == add.PersonAddressesDisplay)).ToList();
// matchAddresses includes unwanted results
.
.
.
}
【问题讨论】:
-
请举例输入输出。
-
虽然没有回答你的问题,但我想知道为什么打电话给
AsEnumerable()?在应用Where过滤器之前,这会将与Persons连接的整个PersonAddresses表拉到内存中。
标签: c# entity-framework linq