我有更多的特例,我不知道我的问题发生的原因是什么。
我有一个有嵌套类B的A类,它也有一个嵌套类C
public class A
{
[Key]
public int Id { get; set; }
public int Name { get; set; }
public List<B> Bs{ get; set; }
}public class B
{
[Key]
public int Id { get; set; }
public int Name { get; set; }
public List<C> Cs{ get; set; }
[ForeignKey(nameof(A))]
public int AId{ get; set; }
}public class C
{
[Key]
public int Id { get; set; }
public int Name { get; set; }
[ForeignKey(nameof(B))]
public int BId{ get; set; }
}现在,我遇到的问题是,当与class C一起调用class A时,class A的值不包含在Include()中,这两个方法分别是ThenInclude()方法。
从DB表中获取值的方式是使用普通SQL查询和LINQ相结合。
var query = from queryResult in _dbSet.Include(a => a.B).ThenInclude(B => b.C)
select new ResultModel()
{
Name = queryResult.Name
B = queryResult.B
}B的正常属性将从db自动映射到它,但是嵌套List属性的值并不是出于某种原因。
是否需要进行其他更改以选择查询,以便将嵌套class C属性值映射到class B
发布于 2021-03-31 13:45:02
我希望这个问题不要太混乱。
我遇到的问题是,由于没有包含在select中,属性被忽略了。所以解决办法是改变
var query = from queryResult in _dbSet.Include(a => a.B).ThenInclude(B => b.C)
select new ResultModel()
{
Name = queryResult.Name
B = queryResult.B
}至
var query = from queryResult in _dbSet.Include(a => a.B).ThenInclude(B => b.C)
select new ResultModel()
{
Name = queryResult.Name
B = queryResult.B.Select(x =>
new C {
Id = x.Id,
Name = x.Name,
}).ToList()您可以阅读更多关于这个问题的这里。
https://stackoverflow.com/questions/66886973
复制相似问题