EntityFramework versucht, eine nicht vorhandene Spalte abzurufen, und das Fremdschlüsselattribut hilft nicht.EntityFramework versucht, eine nicht vorhandene Spalte abzurufen
In meinem Fall, ich habe zwei Tabellen mit einzelnen auf mehrere Beziehungen:
T_Blog
- Id
- FeaturedPost
T_Post
- Id
- BlogId
und I definierten Modellelementdaten
public class T_Blog
{
[Key]
public int Id {get;set;}
public int? FeaturedPostId {get;set;}
[ForeignKey("FeaturedPostId")]
public virtual T_Post FeaturedPost {get;set;}
public virtual ICollection<T_Post> Posts {get;set;}
}
public class T_Post
{
[Key]
public int Id {get;set;}
[Required]
public int BlogId {get;set;}
[ForeignKey("BlogId")]
public T_Blog Blog {get;set;}
}
Und mit dieser Metadaten definiert EF versucht T_Blog_Id
Spalte zu holen jedes Mal, wenn ich versuche, db.T_Post.Where (...) auszuführen. ToList();
Ich habe verstanden, dass, solange mein T_Blog zwei Verweise auf T_Post hat, EF versucht, beide IDs zu holen.
ps: Ja, ich weiß, dass diese Art von Datenmodell nicht optimal ist, aber diese Art von Denormalisierung ist in meinem Fall (zumindest ab sofort) erforderlich.
Wie definiert man die zweite Beziehung richtig, damit EF weiß, was zu holen ist?
Fluent API ist groß, diese Art von Verwirrung zu vermeiden. Ich werde es versuchen. Ab sofort waren Attribute bequemer, solange weniger Code benötigt wurde und (was noch wichtiger ist) weniger umzuformen, wenn etwas geändert wurde. –