service.Create和orgContext.AddObject有什么区别?

时间:2012-05-10 05:51:25

标签: dynamics-crm dynamics-crm-2011

我发现至少有两种方法可以在实体中创建记录,如下所示。

公共部分

var record = new someEntity()
{
    attribute1="test1",
    attribute2="test2" 
};

var service = new OrganizationService("CrmConnectionString");

A部分

service.Create(record);

B部分

var orgContext = new OrganizationServiceContext(service);
orgContext.AddObject(record);
orgContext.SaveChanges();

有什么区别?哪个更好?

1 个答案:

答案 0 :(得分:8)

A部分使用组织服务代理的原始create方法。此操作直接创建记录。

B部分使用了OrganizationServiceContext,它实现了Unit of Work pattern。在致电SaveChanges()

之前,您的操作不会传输到服务器

哪个更好?这取决于您的要求。如果你只想在旅途中创建一个记录 - >使用该服务。如果你做了多个构成逻辑单元的东西,那就拿B版。