entity framework 数据库第一个脚手架 dbcontext 不启用实体导航
entity framework database first scaffolded dbcontext do not enable entity navigation
示例:dbContext.Shortlist.Include(a => a.Shortlist_crew)。 .Include() 部分根本不可用。与任何其他实体相同:table.Include(q=>q.OtherEntity)。
这是来自生成的 类 运行 dnx ef dbcontext 脚手架 EntityFramework.SqlServer。
运行 在使用 EF 7 beta-7 的 asp.net 5 (beta 7) 项目中
这里缺少什么?
生成的数据库上下文的片段:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
...
modelBuilder.Entity<Shortlist>(entity =>
{
entity.ToTable("Shortlist", "dbSchemaName");
entity.Property(e => e.id).ValueGeneratedNever();
entity.Property(e => e.name).Required();
entity.Property(e => e.production_id).Required();
entity.Property(e => e.user_id).Required();
entity.Reference(d => d.production).InverseCollection(p => p.Shortlist).ForeignKey(d => d.production_id);
entity.Reference(d => d.user).InverseCollection(p => p.Shortlist).ForeignKey(d => d.user_id);
});
modelBuilder.Entity<Shortlist_crew>(entity =>
{
entity.ToTable("Shortlist_crew", "dbSchemaName");
entity.Property(e => e.id).ValueGeneratedNever();
entity.Property(e => e.added)
.Required()
.HasDefaultValueSql("getutcdate()");
entity.Property(e => e.crew_id).Required();
entity.Property(e => e.shortlist_id).Required();
entity.Reference(d => d.shortlist).InverseCollection(p => p.Shortlist_crew).ForeignKey(d => d.shortlist_id);
entity.Reference(d => d.crew).InverseCollection(p => p.Shortlist_crew).ForeignKey(d => d.crew_id);
});
...
}
public virtual DbSet<Shortlist> Shortlist { get; set; }
public virtual DbSet<Shortlist_crew> Shortlist_crew { get; set; }
和生成的 POCO:
public class Shortlist
{
public Shortlist()
{
Production_shortlist = new HashSet<Production_shortlist>();
Shortlist_crew = new HashSet<Shortlist_crew>();
}
public Guid id { get; set; }
public string name { get; set; }
public Guid production_id { get; set; }
public string remarks { get; set; }
public Guid user_id { get; set; }
public virtual ICollection<Production_shortlist> Production_shortlist { get; set; }
public virtual ICollection<Shortlist_crew> Shortlist_crew { get; set; }
public virtual Production production { get; set; }
public virtual SearchUser user { get; set; }
}
public class Shortlist_crew
{
public Guid id { get; set; }
public DateTimeOffset added { get; set; }
public Guid crew_id { get; set; }
public Guid shortlist_id { get; set; }
public virtual Crew crew { get; set; }
public virtual Shortlist shortlist { get; set; }
}
好吧,答案很明显。缺少使用。
using Microsoft.Data.Entity;
示例:dbContext.Shortlist.Include(a => a.Shortlist_crew)。 .Include() 部分根本不可用。与任何其他实体相同:table.Include(q=>q.OtherEntity)。 这是来自生成的 类 运行 dnx ef dbcontext 脚手架 EntityFramework.SqlServer。 运行 在使用 EF 7 beta-7 的 asp.net 5 (beta 7) 项目中 这里缺少什么? 生成的数据库上下文的片段:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
...
modelBuilder.Entity<Shortlist>(entity =>
{
entity.ToTable("Shortlist", "dbSchemaName");
entity.Property(e => e.id).ValueGeneratedNever();
entity.Property(e => e.name).Required();
entity.Property(e => e.production_id).Required();
entity.Property(e => e.user_id).Required();
entity.Reference(d => d.production).InverseCollection(p => p.Shortlist).ForeignKey(d => d.production_id);
entity.Reference(d => d.user).InverseCollection(p => p.Shortlist).ForeignKey(d => d.user_id);
});
modelBuilder.Entity<Shortlist_crew>(entity =>
{
entity.ToTable("Shortlist_crew", "dbSchemaName");
entity.Property(e => e.id).ValueGeneratedNever();
entity.Property(e => e.added)
.Required()
.HasDefaultValueSql("getutcdate()");
entity.Property(e => e.crew_id).Required();
entity.Property(e => e.shortlist_id).Required();
entity.Reference(d => d.shortlist).InverseCollection(p => p.Shortlist_crew).ForeignKey(d => d.shortlist_id);
entity.Reference(d => d.crew).InverseCollection(p => p.Shortlist_crew).ForeignKey(d => d.crew_id);
});
...
}
public virtual DbSet<Shortlist> Shortlist { get; set; }
public virtual DbSet<Shortlist_crew> Shortlist_crew { get; set; }
和生成的 POCO:
public class Shortlist
{
public Shortlist()
{
Production_shortlist = new HashSet<Production_shortlist>();
Shortlist_crew = new HashSet<Shortlist_crew>();
}
public Guid id { get; set; }
public string name { get; set; }
public Guid production_id { get; set; }
public string remarks { get; set; }
public Guid user_id { get; set; }
public virtual ICollection<Production_shortlist> Production_shortlist { get; set; }
public virtual ICollection<Shortlist_crew> Shortlist_crew { get; set; }
public virtual Production production { get; set; }
public virtual SearchUser user { get; set; }
}
public class Shortlist_crew
{
public Guid id { get; set; }
public DateTimeOffset added { get; set; }
public Guid crew_id { get; set; }
public Guid shortlist_id { get; set; }
public virtual Crew crew { get; set; }
public virtual Shortlist shortlist { get; set; }
}
好吧,答案很明显。缺少使用。
using Microsoft.Data.Entity;