summiya1 Ответов: 1

Возврат объекта из репозитория


Привет, ребята, мне действительно нужна помощь

Я возвращаю объект из шаблона репозитория, который является сущностью базы данных ( которую я не могу изменить), теперь у меня есть требование отправить обратно сумму цен (total), которая не является атрибутом объекта, который я собираюсь вернуть. какой результат я должен отправить его обратно

как я могу это изменить
List<Order>
с чем-то еще, чтобы это работало для меня

public List<Order> ListByCustomerId(int customerId)
		{


            var Sessionslist = (from OrderItems in DataContext.OrderItems
                                join odr in DataContext.Orders on new { ID = OrderItems.OrderId } equals new { ID = odr.ID } into odr_join
                                from odr in odr_join.DefaultIfEmpty()
                                join Products in DataContext.Products on new { ID = OrderItems.ProductId } equals new { ID = Products.ID } into Products_join
                                from Products in Products_join.DefaultIfEmpty()
                                where
                                  odr.CustomerId == 1
                                group new { odr, OrderItems, Products } by new
                                {
                                    odr.OrderNumber,
                                    odr.ID,
                                    odr.OrderDate
                                } into g
                                select new
                                {
                                    OrderNumber = g.Key.OrderNumber,
                                    ID = (int?)g.Key.ID,
                                    OrderDate = g.Key.OrderDate,
                                    total = (decimal?)g.Sum(p => p.Products.Price * p.OrderItems.Quantity)
                                }).ToList();




            List<Order> order = this.DataContext.Orders.Where(o => o.CustomerId == customerId).ToList();
            return order;


Что я уже пробовал:

Я много чего перепробовал но ничего не получалось

F-ES Sitecore

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

Чтобы опередить ваш следующий вопрос, google "частичные классы c# "

summiya1

да, спасибо за ответ, но не могли бы вы, пожалуйста, указать мне, как я могу связать оба класса как сущности. Я в замешательстве.

Atlapure Ambrish

Новое свойство, которое вы добавляете в частичный класс, должно быть доступно автоматически, потому что новый частичный класс-это не что иное, как ваша сущность :).

1 Ответов

Рейтинг:
2

Hariprakash Nagar

Вам нужно добавить атрибут к объекту. попробуйте следующий код

public List<Order> ListByCustomerId(int customerId)
		{


            var Sessionslist = (from OrderItems in DataContext.OrderItems
                                join odr in DataContext.Orders on new { ID = OrderItems.OrderId } equals new { ID = odr.ID } into odr_join
                                from odr in odr_join.DefaultIfEmpty()
                                join Products in DataContext.Products on new { ID = OrderItems.ProductId } equals new { ID = Products.ID } into Products_join
                                from Products in Products_join.DefaultIfEmpty()
                                where
                                  odr.CustomerId == 1
                                group new { odr, OrderItems, Products } by new
                                {
                                    odr.OrderNumber,
                                    odr.ID,
                                    odr.OrderDate
                                } into g
                                select new Order
                                {
                                    OrderNumber = g.Key.OrderNumber,
                                    ID = (int?)g.Key.ID,
                                    OrderDate = g.Key.OrderDate,
                                    total = (decimal?)g.Sum(p => p.Products.Price * p.OrderItems.Quantity)
                                }).ToList();
  return Sessionslist