0

2 つのテーブルがあるとします。

Customer
    Id int
    Name varchar
    TypeId int

CustomerType
    Id int
    Type varchar

TypeId は、CustomerType の Id への外部キーです。Customer を EF でそのようなエンティティとしてロードするにはどうすればよいですか。

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int TypeId { get; set; }
    [ForeignKey("TypeId")]
    public string Type { get; set; }
}

Type は、CustomerType の Type 属性になります。私はEF5でコードファーストを使用しています。現在は機能しませんThe navigation property X is not a declared property on type.. 。例外が引き続き発生します。

4

1 に答える 1

0

プロパティを別のテーブルにマップすることはできません。テーブルにマップできるのはエンティティのみです。回避策として、タイプがCustomerType2番目のテーブルにマップされるプロパティを作成し、プロパティTypeをマップされていないものとしてマークすることができます。

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int TypeId { get; set; }
    [ForeignKey("TypeId")]
    protected CustomerType CustomerType { get; set; }
    [NotMapped]
    public string Type 
    { 
        get { return CustomerType.Type; }
        set { CustomerType.Type = value; }
    }
}
于 2013-03-04T17:37:11.530 に答える