Библиотека для помощников моделей - PullRequest
0 голосов
/ 13 марта 2020

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

public class Book{
    public string Name { get; set; }
}

public class BookHelper{
    public Book Entity;
    public List<Book> OtherSeries(){
        var books =  Entity.Author.Books;
        books.remove(Entity);
        return books;
    }
}

Может ли какая-либо библиотека это стандартизировать?

1 Ответ

1 голос
/ 13 марта 2020

Есть несколько способов сделать это. Но я не думаю, что они называются / считаются стандартными. Это просто ваши собственные предпочтения. Но что бы вы ни выбрали, не кладите столько методов в 1 класс, это нарушает Единую ответственность.

Во-первых, используйте метод расширения

public static class BookExntensions
{
    public static List<Book> OtherSeries(this Book book)
    {
        var books =  book.Author.Books;
        books.remove(Entity);
        return books;
    }
}

Во-вторых, используйте класс Helper, например как вы это сделали.

В-третьих, используйте Helper с типом generi c, чтобы вы могли повторно использовать часть кода.

public class EntityHelper<T>
{
    private T Entity;
}
public class BookHelper : EntityHelper<Book>
{
    public List<Book> OtherSeries()
    {
       var books =  Entity.Author.Books;
       books.remove(Entity);
       return books;
    }
}

Есть еще способы сделать, но я оставлю их.

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