Я использую Entity Framework 4.1 - Code First.Я храню адреса пользователей следующим образом:
Страна -> Район -> Город -> -> Район -> Адрес
Это относится только к адресам в моей стране, где я предоставляю все доступные районы,Города и районы в стране, так что пользователь может выбирать из.А затем он заполняет детали своего адреса, которые хранятся в таблице адресов.
Чтобы сделать это более понятным, взгляните на следующее:
public class Address
{
public int Id { get; set; }
public string Name { get; set; }
[MaxLength(500)]
public string Details { get; set; }
public bool IsDefaultAddress { get; set; }
public string CountryName { get; set; }
public Area Area { get; set; }
public virtual User User { get; set; }
}
public class Area
{
public int Id { get; set; }
public string GoogleName { get; set; }
public string FamiliarName { get; set; }
public virtual ICollection<Address> Addresses { get; set; }
public virtual City City { get; set; }
public string GetName
{
get { return FamiliarName ?? GoogleName; }
}
}
public class City
{
public int Id { get; set; }
public string Name { get; set; }
public virtual District District { get; set; }
public virtual ICollection<Area> Areas { get; set; }
}
public class District
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<City> Cities { get; set; }
public virtual Country Country { get; set; }
}
public class Country
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<District> Districts { get; set; }
}
Я заметил, что использую ли яключевое слово virtual
или нет, ничего не меняется.Area
всегда почему-то равен нулю.
Как я могу получить адрес и сделать все остальные объекты информации (области, города, района и страны) не равными нулю?