2013-01-31 16 views
18

私は2つのコードの最初のモデルFooとFooStateがあります。ここで、FooにはオプションのFooStateがあります。Entity Framework外部キーを主キーコードとして最初に

​​

私はそれが主キーだとFooStateIdが本当にFooIdを使用しているので、すべてが倒れそう

public class FooState 
{ 
    [Key] 
    public int FooStateId { get; set; } 

    [Required] 
    public int State { get; set; } 

    [ForeignKey("Foo")] 
    [Required] 
    public int FooId 
    public Foo Foo { get; set; } 
} 

ようFooStateに外部キーを追加しようとすると、しかし、これは正常に動作します。これは、データベースの観点からは理にかなっています。

ただし、FooStateレコードを保存するときにFooのインスタンスを作成する必要はなく、依然として必須の属性を保持しています。

これにより、FooIdと状態をdtoに送信でき、その状態を変更したい場合は、Fooオブジェクト全体をDBから取得する必要はありません。

まず、EFコードでこれを設定する必要がありますか?

答えて

26

私はこれをショットにしたいと思っていて、うまくいきました。

public class FooState 
{ 
    [Required] 
    [Key] 
    [ForeignKey("Foo")] 
    public int FooStateId { get; set; } 

    [Required] 
    public int State { get; set; } 

    public Foo Foo { get; set; } 
} 
+8

[Key、ForeignKey( "Foo")] – Zakos

関連する問題