Как определить набор в ПОСТЕПЕННО в Платформе Объекта 4?

Позволяет говорят, что у меня есть класс Команды, который содержит 0 или больше Плееров.

Класс Плеера легок:

public class Player
{
    public long Id { get; set; }
    public string Name { get; set; }
    public Team Team { get; set; }
}

Но что лучшее должно определить класс Команды?

Опция 1

public class Team
{
    public long Id { get; set; }
    public string Name { get; set; }
    public ICollection<Player> Players { get; set; }
}

Опция 2:

public class Team
{
    public Team()
    {
        Players = new Collection<Player>();
    }

    public long Id { get; set; }
    public string Name { get; set; }
    public ICollection<Player> Players { get; set; }
}

Опция 3:

public class Team
{
    public long Id { get; set; }
    public string Name { get; set; }
    public IQueryable<Player> Players { get; set; }
}

Опция 4:

public class Team
{
    public long Id { get; set; }
    public string Name { get; set; }
    public ObjectSet<Player> Players { get; set; }
}
6
задан Stef Heyenrath 14 April 2010 в 10:24
поделиться

1 ответ

Во-первых, давайте откажемся от неприемлемых вариантов. Вариант 3 не совсем правильный; мы находимся в пространстве объектов, а не в пространстве LINQ to Entities. Вариант 4 тоже неверен; ObjectSet предназначен для использования в ObjectContext , а не в типе POCO.

Остались 1 и 2. Оба они будут работать правильно. Entity Framework инициализирует коллекцию при материализации связанных экземпляров из базы данных, если вы этого не сделаете. Однако вариант 2 имеет то преимущество, что вы можете использовать новую команду Team в своем собственном коде, прежде чем сохранять ее в базе данных и читать обратно. Так что я, наверное, выбрал бы это.

7
ответ дан 17 December 2019 в 00:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: