Помогите решить спор с преподавателем по поводу моделей в EF Core

Рейтинг: 0Ответов: 0Опубликовано: 18.03.2023

Выполняю задание, нужно написать приложение с готовой БД на WPF с использованием EF Core. Когда я показывал преподавателю предварительную версию, у нас возник спор.

Такой сгенерировался для EF Core.

public partial class ProductDB
{
    [Key]
    public string ProductArticleNumber { get; set; } = null!;

    public string ProductName { get; set; } = null!;

    public string ProductDescription { get; set; } = null!;

    public int ProductCategory { get; set; }

    public string? ProductPhoto { get; set; }

    public int ProductManufacturer { get; set; }

    public decimal ProductCost { get; set; }

    public sbyte? CurrentDiscount { get; set; }

    public int ProductQuantityInStock { get; set; }

    public int UnitOfMeasurement { get; set; }

    public int Delivery { get; set; }


    public int? ProductDiscountAmount { get; set; }

    public virtual Delivery DeliveryNavigation { get; set; } = null!;

    public virtual ICollection<Orderproduct> Orderproducts { get; } = new List<Orderproduct>();

    public virtual ProductCategory ProductCategoryNavigation { get; set; } = null!;

    public virtual Manufacturer ProductManufacturerNavigation { get; set; } = null!;

    public virtual Unit UnitOfMeasurementNavigation { get; set; } = null!;

}

Так как мне нужно было добавить новые свойства, я создал новый класс

    public class Product
    {
        public string? Article { get; set; }
        public string? Title { get; set; }
        public string? Description { get; set; }
        public string? Manufacturer { get; set; }
        public float? Price { get; set; }
        public int? MaxQuantity { get; set; }
        public float? CurrentDiscount { get; set; }



        public string Image { get; set; }


        public string ImageUrl
        {
            get
            {
                return Path.GetFullPath(@$"Resources\{Image}");
            }
        }


        public float? NewPrice
        {
            get
            {
                if (CurrentDiscount != 0)
                {
                    return Price - (Price * (CurrentDiscount / 100));
                }
                return 0;
            }
        }

        public bool HaveDiscount
        {
            get
            {
                return NewPrice != null;
            }
        }

    }

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

Буду рад если мне объяснят верное решение, и помогут решить спор.

Ответы

Ответов пока нет.