Я сделал первый подход к базе данных, и я сделал свою базу данных.Я использую отношения и у меня есть две таблицы:
users
-------------
id PK int(11)
username UNIQUE varchar(20)
rooms
-------------
id PK int(11)
name VARCHAR(30) NOT NULL
owner_id INDEX int(11) -> FK to users.id
Когда я делаю каркас, модели выглядят примерно так:
User.cs:
public User()
{
Rooms = new HashSet<Room>();
}
public int Id { get; set; }
public string Username { get; set; }
public virtual ICollection<Room> Rooms { get; set; }
Room.cs:
public int Id { get; set; }
public string Name { get; set; }
public int? OwnerId { get; set; }
public virtual User Owner { get; set; }
(OwnerId обнуляется, так как у системных комнат нет назначенного владельца)
Проблема заключается в том, что при входе в систему мой пользовательский объект был получени я смотрю user.Rooms
, коллекция всегда пуста, даже если в базе данных есть запись.
Я знаю, что в include это исправлено, но это заставляет меня загружать ВСЕ комнаты из базы данных, которая являетсяужасная идея, когда при запуске программы загружается более 1000 комнат.
Почему коллекция всегда пуста, даже если отношения установлены правильно?