var user = await context.Customers
.Include(x => x.CustomerPreferences)
.ThenInclude(up => up.CustomerNations)
.Where(x => x.Id == userId).FirstOrDefaultAsync(cancellationToken);
客户国家实体具有
public Customer Customer { get; set; } = null!;
public virtual IList<CustomerNation> CustomerNations { get; set; } = new List<CustomerNation>();
我在CustomerNation表中没有记录,但是根据此代码,CustomerNations中有一条记录,当我在调试过程中观察时,Result视图显示0个结果。
var preferences= user.preferences
.ToList();
if (preferences.Any())
{
var customerNations= user.CustomerPreferences
.Select(x => x.CustomerNations);
if (customerNations.Count() != 0) //Both, Any() and Count shows there is one record. I check dropdown and Result view has 0 results.
{
foreach (var nation in customerNations)
{
context.Remove(counterParty);
}
}
}
计数为1,但结果视图显示
不同
1条答案
按热度按时间3qpi33ja1#
Enumerable.Select<TSource,TResult>
返回IEnumerable<TResult>
。在本例中,由于CustomerPreferences.CustomerNations
的类型为IList<CustomerNation>
,因此user.CustomerPreferences.Select(x => x.CustomerNations)
返回的是IEnumerable<IList<CustomerNation>>
。因此,您的customerNations
可能有一个项目本身为空IList<CustomerNation>
。如果你想把所有的
CustomerNation
示例扁平化成一个IEnumerable<CustomerNation>
,你应该使用Enumerable.SelectMany
。x1米11米1x