【发布时间】:2021-06-15 08:01:42
【问题描述】:
我对 EF Core 很陌生。我不明白 betweek 表的关系逻辑。
在我的数据上下文中:
modelBuilder.Entity<CorsoStepLezioneSessione>()
.HasKey(x => new { x.codCorso, x.codStep, x.codLezione, x.codSessione });
modelBuilder.Entity<CorsoStepLezioneSessione>()
.HasOne(sessione => sessione.Lezione)
.WithMany(lezione => lezione.Sessioni)
.HasForeignKey(sessione => new { sessione.codCorso, sessione.codStep, sessione.codLezione });
modelBuilder.Entity<CorsoStepLezione>()
.HasMany(lez => lez.Sessioni)
.WithOne(sess => sess.Lezione)
.HasForeignKey(sess => new { sess.codCorso, sess.codStep, sess.codLezione });
实体:
public class CorsoStepLezione
{
public int codCorso { get; set; }
public int codStep { get; set; }
public int codLezione { get; set; }
public string nome { get; set; }
public CorsoStepS CorsoStep { get; set; }
public List<CorsoStepLezioneSessione> Sessioni { get; set; }
}
public class CorsoStepLezioneSessione
{
public int codCorso { get; set; }
public int codStep { get; set; }
public int codLezione { get; set; }
public int codSessione { get; set; }
public DateTime? data { get; set; }
public string ora { get; set; }
public CorsoStepLezione Lezione { get; set; }
public List<CorsoStepLezioniSessioniIscrizione> Iscrizioni { get; set; }
}
当我打电话时在服务中
var x = _clienteContext.CorsoStepLezioneSessioni.Include(x => x.Lezione)
.Where(x => x.codCorso == codCorso && x.codStep == codStep && x.codLezione == codLezione && x.codSessione == codSessione).ToList();
它给了我:“表达式 'x.Lezione' 在 'Include' 操作中是无效的,因为它不代表属性访问:'t => t.MyProperty'。要定位在派生类型上声明的导航,使用强制转换 ('t => ((Derived)t).MyProperty') 或 'as' 运算符 ('t => (t as Derived).MyProperty')。可以通过组合 Where, OrderBy( Descending)、ThenBy(Descending)、Skip 或 Take 操作。有关包含相关数据的更多信息,请参阅http://go.microsoft.com/fwlink/?LinkID=746393."
你能给我一些建议吗?
【问题讨论】:
标签: c# entity-framework entity-framework-core