Entity Framework, как сделать это более общим, чтобы писать меньше кода - PullRequest
1 голос
/ 14 марта 2019

Итак, я пишу программу и получаю данные, используя EF 6.

В принципе, я думаю, что самый простой подход - это один класс:

  public class DataRetriever
{
    public List<TEntity> GetAll<TEntity>() where TEntity : class
    {
        using (var Db = new Entity())
        {
            return Db.Set<TEntity>().ToList();
        }
    }

}

Итак, вы начинаете создавать другие классы на основе указания, какие данные вы хотите собирать. Скажем, у меня есть список карнавальных аттракционов, и один из способов - получить одну поездку или что-то в этом роде. ТАК тогда у меня будет следующее:

   public class SelectedRide
{
    int RideId { get; set; }
    string RideName { get; set; }
    string DomValue { get; set; }

    public SelectedRide(DataRetriever Retriever)
    {
        var Records = Retriever.GetAll<vwRideList>();
        var Record = from x in Records
                     where x.RideId == RideId
                     select x;
        RideName = Record.Single().RideName;
        DomValue = Record.Single().DomValue;

    }
}

Идентификатор поездки является личностью.

Таким образом, можно было бы сказать, что если бы другой класс, например, скажем, у нас было несколько парков, где проходили поездки, мог бы быть public class SelectedPark, он имел бы ту же логику, но в Retriever.GetAll<vwParkList>(); список поездок теперь является списком парков. И так далее.

Я не могу сказать, быстро ли это выйдет из-под контроля, если я скажу, что было 50 отдельных типов поиска, которые нужно было сделать. Конечно, я не буду знать, поскольку я знаю общий объем этой программы, но ЧТО, ЕСЛИ.

Я тоже видел такие вещи, как модель репо, но я не могу сказать, является ли это пустой тратой времени или нет. Я не могу сказать, что я получаю от этого. Похоже, это было достаточно общим, чтобы я не писал контекст в миллионе разных мест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...