【发布时间】:2010-03-21 12:18:53
【问题描述】:
我有一个 WCF 服务,它对我的数据模型执行 CRUD 操作:添加、获取、更新和删除。我正在为我的数据模型使用实体框架。 另一方面,有一个客户端应用程序调用 WCF 服务的方法。
例如我有一个客户类:
[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 时,这可能是一个性能问题,因为我每次执行 Add()、Update()、Get() 或 Delete 时都需要创建 ObjectContext ()。
我的想法是将 ObjectContext 保留在客户端,并将 ObjectContext 作为附加参数传递给 wcf 方法。
是否可以在客户端上创建并保留 ObjectContext 并且不为每个操作重新创建它?如果不是,如何加快向 wcf 服务传递大量数据的速度?
谢尔盖
【问题讨论】:
标签: c# wcf entity-framework