0

データベース内のビューにマップされている「Id」フィールドを含むAccountオブジェクトがあります。

public class Account : GeneralInfo
    {
        [Column("first_name")]
        public string FirstName { get; set; }

        [Column("last_name")]
        public string LastName { get; set; }

        public string Designation { get; set; }

        [Column("full_name")]
        public string FullName { get; set; }

        public string Email { get; set; }

        [Column("member_type")]
        public string MemberType { get; set; }

        [Column("status")]
        public string Status { get; set; }

        [Column("paid_thru")]
        public DateTime? PaidThru { get; set; }

        [Column("member_record")]
        public bool MemberRecord { get; set; }

        [Column("category")]
        public string Category { get; set; }

        public virtual Subscription Subscriptions { get; set; }
    }

アカウントオブジェクトと同じ「Id」を使用するサブスクリプションオブジェクトもあります。

[Table("Subscriptions")]
public class Subscription
{
    [Column("Id")]
    public string ID { get; set; }

    [Column("Balance")]
    public decimal Balance { get; set; }

}

アカウントのナビゲーションプロパティとして「サブスクリプション」を使用しようとすると、次のようなエラーが発生します。 {"Invalid column name 'Subscriptions_ID'."}

Accountオブジェクトを使用して「サブスクリプション」にアクセスするにはどうすればよいですか?

4

1 に答える 1

1

流暢なAPIを使用して、共有PK関係をマッピングします。

public class MyContext : DbContext
{
    // ...........

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Subscription>().HasRequired()
           .WithOptional(a => a.Subscriptions);
    }
}
于 2012-09-11T16:59:18.123 に答える