私は次のモデルを持っています:
public class Address
{
public int Id {get; set;}
public string Street1 {get; set;}
...
public int CountryId {get; set;}
public Country Country {get; set;}
}
public class Country
{
public int Id {get; set;}
public string Name {get; set;}
public string ISOCode {get; set;}
public string Continent {get; set;}
public string ISOCode {get; set;}
public string Languages {get; set;}
}
public class Church
{
public int Id {get; set;}
public string Name {get; set;}
public int CountryId {get; set;}
public Country Country {get; set;}
public int AddressId {get; set;}
public virtual Address Address {get; set;}
public string Phone {get; set;}
}
シリアライザーは、ChurchとAddressの両方にCountryオブジェクトがあるため、Countryと何らかの双方向の関係があると思いますか?そうでない場合、教会のオブジェクトをシリアル化しようとすると、なぜ循環参照を取得するのですか?
編集: 私にとってさらに混乱しているのは、私が質問するときに(教会の)国さえ含めていないということです:
var results = _context.Churches.Include(c => c.Address).Include(c => c.Address.Country).AsQueryable();
Entity Framework Contextは、LasyLoadingが有効にならないように構成されています。Church.Countryはnullである必要があり、ここでは問題にならないように思われます。