这是我第一次使用 Entity Framework 4.3.1 在 C# 中创建项目。我无法从锦标赛表中获取所有数据,确切地说是地址。
首先,这是我的 Code First 代码。当我运行它时,这 2 个表以正确的关系正确创建。我在这些类中定义了更多的列,但对于这个例子,我只展示了一些。
public class EFDbContext : DbContext
{
public EFDbContext()
: base("ApplicationServices")
{
}
public DbSet<Tournament> tournaments { get; set; }
public DbSet<Address> addresses { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
public class Tournament
{
[ScaffoldColumn(false)]
public int TournamentId { get; set; }
[Required(ErrorMessage="Tournament name is a required field")]
public string Name { get; set; }
[Required(ErrorMessage="Address is a required field")]
public Address Address { get; set; }
}
public class Address
{
[ScaffoldColumn(false)]
public int AddressId { get; set; }
[Required(ErrorMessage="Street name is a required field")]
public string Street { get; set; }
[Required(ErrorMessage="House number is a required field")]
public string HouseNo { get; set; }
}
}
当我插入一个带有地址的新锦标赛并检查数据库是否使用了关系时,我可以看到它有效。锦标赛有一个指向新插入地址的 Address_AddressId 值。但是当我尝试通过这样做来获取信息时:
Tournament tournament = context.tournaments.Find(id);
我调试它,我可以看到来自锦标赛的所有数据都在锦标赛对象中,除了地址。这设置为空,我完全不知道为什么。
你们能帮帮我吗?
在此先感谢,巴特