У меня есть служба WCF, которая выполняет операцию CRUD для моей модели данных: Добавить, Получить, Обновить и Удалить. И я использую Entity Framework для моей модели данных.
С другой стороны, есть клиентское приложение, которое вызывает методы службы WCF.
Например, у меня есть класс Customer:
[DataContract]
public class Customer
{
public Guid CustomerId {get; set;}
public string CustomerName {get; set;}
}
и служба WCF определяет этот метод:
public void AddCustomer(Customer c)
{
MyEntities _entities = new MyEntities();
_entities.AddToCustomers(c);
_entities.SaveChanges();
}
и клиентское приложение передает объекты службе WCF:
var customer = new Customer(){CustomerId = Guid.NewGuid, CustomerName="SomeName"};
MyService svc = new MyService();
svc.Add(customer); // or svc.Update(customer) for example
Но когда мне нужно передать большое количество объектов в WCF, это может быть проблемой производительности, потому что мне нужно создавать ObjectContext каждый раз, когда я делаю Add (), Update (), Get () или Delete ().
Я думаю о том, чтобы сохранить ObjectContext на клиенте и передать ObjectContext в методы wcf в качестве дополнительного параметра.
Можно ли создать и сохранить ObjectContext на клиенте и не создавать его заново для каждой операции? Если это не так, как можно ускорить передачу огромного количества данных в службу wcf?
Сергей