Можно ли вставить / обновить с помощью функции .NET или веб-службы при использовании Entity Framework? - PullRequest
0 голосов
/ 03 июня 2009

Наша система тикетов позволяет нам читать базу данных напрямую, но обновления должны выполняться либо через веб-сервис, либо через вставку в специальную «промежуточную» таблицу, а затем вызывать веб-сервис для запуска обработки их бизнес-логики.

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

Если это возможно, как бы я справился с этим?

1 Ответ

0 голосов
/ 03 июня 2009

Это возможно. Вы должны иметь возможность отправлять сущности и связанные графики в службу и использовать эти значения с минимальными изменениями или создавать сопоставление между сущностями и вашими предыдущими классами. Честно говоря, я думаю, что это довольно много работы, но, если она не сломана, зачем ломать ее сейчас? :)

РЕДАКТИРОВАТЬ:

Я сделаю первую попытку. Допустим, у нас есть Ticket, TicketEntity (сущность Entity Framework) и TicketService. У TicketService есть метод для обновления бронирования или чего-то еще. Я не знаком с услугами по продаже билетов, поэтому сейчас я просто догадываюсь. Не стесняйтесь поправлять меня, если я ошибаюсь:)

public class TicketService
{
    public TicketService()
    {
        public void InsertTicket(Ticket ticket)
        {
            // Logic remains the same
        }
    }
}

public class Ticket
{
    private TicketEntity _entity;
    public Ticket(TicketEntity entity)
    {
        _entity = entity;
    }

    public decimal Price 
    {
        get { return _entity.Price }
    }

    public double GST 
    {
        get { return _entity.GST }
    }
}

public partial class TicketEntity
{
        public decimal Price { get; set; }
        public double GST { get; set; }
}

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

Чтобы использовать службу тикетов из бизнес-уровня, нужно сделать что-то вроде.

public void Get(TicketEntity entity)
{
    var context = new ObjectContext();
    IList<TicketEntity> entities = (from t in context.TicketEntities
                                    where t.Price > 200
                                    select t).ToList();
    foreach (var ent in entities)
    {
        var ticket = new Ticket(ent);
        new TicketService().InsertTicket(ticket);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...