Ich verwende EF Code First mit einer bereits vorhandenen Datenbank.EF-Code Zuerst keine verwandten Objekte zurückgeben
Zwei Objekte:
public Foo
{
public int FooId {get;set;}
}
public Bar
{
public int BarId {get;set;}
public virtual Foo Foo {get;set;}
}
Sowohl FooId
und BarId
sind Primärschlüssel in der Datenbank und die Bar
Tabelle hat eine Spalte FooId
, die an der Foo
Tabelle ein Fremdschlüssel Zeige ist.
Wenn ich eine Bar
auswähle, ist Foo
eine Nullreferenz. Ich hätte gedacht, EF hätte die beiden automatisch zusammengezogen, aber vielleicht verpasse ich etwas?
Datenbank-Mappings:
public class EFCodeFirst : DbContext
{
public EFCodeFirst()
{
this.Database.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["AlternateString"].ConnectionString;
}
public DBSet<Foo> Foos {get;set;}
public DBSet<Bar> Bars {get;set;}
protected override void OnModelCreating(System.Data.Entity.ModelConfiguration.ModelBuilder modelBuilder)
{
modelBuilder.IncludeMetadataInDatabase = false;
modelBuilder.Entity<Foo>().MapSingleType().ToTable("Foo");
modelBuilder.Entity<Bar>().MapSingleType().ToTable("Bar");
}
}
Können Sie auch Ihren Code zuerst Mapping posten? Was passiert, wenn Sie die Abfrage mit Include ("Foo") aufrufen? –
Wenn ich 'Include (" Foo ")' es funktioniert. – mattdwen