Foo にはオプションの FooState がある Foo と FooState の 2 つのコード ファースト モデルがあります。
public class Foo
{
[Key]
public int FooId { get; set; }
public FooState FooState { get; set; }
}
public class FooState
{
[Key]
public int FooStateId { get; set; }
[Required]
public int State { get; set; }
[Required]
public Foo Foo { get; set; }
}
これは正常に機能しますが、外部キーを FooState に追加しようとすると
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; }
}
FooStateId は実際には主キーとして FooId を使用しているため、すべて失敗します。これは、データベースの観点からは理にかなっています。
ただし、FooState レコードを保存するときに Foo のインスタンスを設定する必要はありませんが、必要な属性は保持したいと思います。
これにより、FooId と状態を dto で送信でき、状態を変更したい場合に Foo オブジェクト全体を DB から取得する必要がなくなります。
最初にEFコードでこれをどのように設定すればよいですか?