我使用EF代码优先与预先存在的数据库。EF代码首先不返回相关对象
两个对象:
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
表的外键指向。
当我选择Bar
时,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");
}
}
你还可以发布你的代码第一次映射吗?如果您使用Include(“Foo”)调用查询,会发生什么情况? – 2010-11-19 10:46:00
如果我包括(“Foo”)'它的工作。 – mattdwen 2010-11-20 02:08:55