Mam dwa pierwsze modele kodu, Foo i FooState, gdzie Foo ma opcjonalny FooState.Kluczowy klucz Entity Framework jako klucz podstawowy Najpierw
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; }
}
Działa to dobrze, jednak gdy próbuję dodać klucz obcy do FooState jak tak
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; }
}
To wszystko spada na ponieważ FooStateId jest naprawdę używając FooId jak to jest klucz podstawowy. Ma to sens z punktu widzenia bazy danych.
Nie chciałbym jednak wypełniać instancji Foo podczas zapisywania rekordu FooState, ale nadal zachowuję wymagany atrybut.
To pozwoliłoby mi wysłać FooId i podać w dto i nie trzeba pobierać całego obiektu Foo z DB, jeśli chcę zmienić jego stan.
Jak powinienem ustawić tę opcję za pomocą kodu EF?
można łączyć [Key, ForeignKey ("Foo")] – Zakos