希望您能帮我解决这个问题:
我有一个旧数据库,其中有两个表:
Datensatz
甘帕那坦
一个Datensatz可以有0到多个Kampagnendaten。到目前为止,没有什么特别的,但是:
Datensatz具有以下字段:
ID
名称
Kampagnendaten具有以下领域:
ID
编号
名称
值
Idds是保存Datensatz的ID的字段,但是此字段未在数据库中定义为外键。
我让EF Core对模型进行反向工程,然后修改了创建的DatabaseContext:
Datensatz:
entity.HasMany<KampagnenDaten>(d => d.KampagnenDatenList).WithOne().HasForeignKey(k => k.Idds);
Kampagnendaten:
entity.HasOne<Datensatz>().WithMany(d => d.KampagnenDatenList).HasForeignKey(k => k.Idds).HasPrincipalKey(d => d.Id);
我还修改了DatensatzModel:
List<KampagnenDaten> KampagnenDaten { get; set; }
现在,当我执行以下命令时:
context.Datensatz.Include(d => d.KampagnenDatenList).FirstOrDefault<Datensatz>(d => d.Id == id);
我得到一个Datensatz,其中包含一组仅包含一个元素的KampagnenDaten。
我如何获得所有Datensatz的KampagnenDaten? (是的,Datensatz在KampagnenDaten表中有11个KampagnenDaten)。
最佳答案
var datensatz = context.Datensatz.Include(d => d.KampagnenDatenList).FirstOrDefault<Datensatz>(d => d.Id == id);
var datensatzId = datensatz.Id;
// what you want. You can add includes if you need.
var kdList = context.KampagnenDaten.Where(k => k.Idds == datensatzId).ToList();
关于c# - 使用Fluent API一对多创建的Entity Framework Core 2,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45963191/