У меня есть два первых кода кода, Foo и FooState, где Foo имеет необязательный FooState.
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 в качестве первичного ключа. Это имеет смысл с точки зрения базы данных.
Мне бы хотелось, чтобы я не заполнял экземпляр Foo при сохранении записи FooState, но сохранял требуемый атрибут.
Это позволит мне отправить FooId и указать в dto и не получать весь объект Foo из базы данных, если я хочу внести изменения в его состояние.
Как мне сначала настроить это с помощью EF-кода?