希望您能帮我解决这个问题:

我有一个旧数据库,其中有两个表:


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/

10-10 10:34