【发布时间】:2021-03-25 11:26:25
【问题描述】:
类塔克:
[Key]
public int TaakId { get; set; }
public int Pid { get; private set; }
[Required]
[Range(0,23.5)]
public double Uur { get; private set; }
[Required]
public Functie Functie { get; private set; }
public List<Taak> Taken { get; private set; }
[NotMapped]
public ICollection<WerknemerTaak> Werknemers { get; set; }
类 WerknemerTaak:
[Required]
public Werknemer Werknemer { get; set; }
[Required]
public Taak Taak { get; set; }
public Afdelingen Afdeling { get; set; }
public string Taakbeschrijving { get; set; }
ReadAllTakenWthWerknemers:
public List<Werknemer> ReadAllWerknemersWithTaken()
{
var taken = ctx.Werknemers
.Include(x => x.Taken)
.ThenInclude(x => x.Taak)
.ToList();
return taken;
}
程序.cs
_mgr.GetAllWerknemersWithTaken().ForEach(x =>
{
Console.WriteLine(x.ToString());
Console.WriteLine("Waarvan de taken zijn:");
x.Taken.ToList().ForEach(t =>
{
Console.WriteLine("\t"+t.Taak.ToString());
});
});
我得到的错误如下:
表达式“x.Taken”在“包含”操作中无效, 因为它不代表属性访问:'t => t.MyProperty'。
我尝试添加 Where(t => t.Werknemer.Pid.Equals(t.Taak.Pid))),但一点运气都没有。我搜索了其他有同样问题的人,但没有找到适合我的答案。而且我需要使用急切加载。
【问题讨论】:
-
ctx.Werknemers 的数据类型是什么?您是否遇到运行时错误或编译时错误?
-
@ChetanRanpariya 我在编译时遇到错误。 ctx.Werknemers 是这个 public DbSet
Werknemers { get;放; } -
WerknemerTaak类没有 Taken 属性。这就是您收到错误消息的原因。 -
@ChetanRanpariya 不,不是这样。它给了我同样的错误。
标签: c# .net entity-framework eager-loading