Entity Framework 4.3.1を使用してC#でプロジェクトを作成するのはこれが初めてです。トーナメントテーブル、正確にはアドレスからすべてのデータを取得するのに問題があります。
まず、これが私のコードファーストコードです。これを実行すると、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);
デバッグすると、アドレスを除いて、トーナメントからのすべてのデータがトーナメントオブジェクトにあることがわかります。これはnullに設定されており、理由はまったくわかりません。
助けてくれませんか?
よろしくお願いします、バート