我将 EF Code First 与预先存在的数据库一起使用。
两个对象:
public Foo
{
public int FooId {get;set;}
}
public Bar
{
public int BarId {get;set;}
public virtual Foo Foo {get;set;}
}
FooId
和都是BarId
数据库中的主键,Bar
表中有一列FooId
是指向Foo
表的外键。
当我选择 aBar
时,Foo
是一个空引用。我原以为EF会自动将它们两个拉到一起,但也许我错过了什么?
数据库映射:
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");
}
}