Подтвердить что ты не робот

Внешний ключ структуры Entity Framework как первичный Key Code Первый

У меня есть два первых кода кода, 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-кода?

4b9b3361

Ответ 1

Я думал, что дам это, и это сработало красиво.

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

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

    public Foo Foo { get; set; }
}