Silverlight 4.0 实体发送到服务器问题

Silverlight 4.0 实体发送到服务器问题,silverlight-4.0,entity,domainservices,Silverlight 4.0,Entity,Domainservices,在客户端,我将所有相关实体(导航属性)添加到我的主实体,并将其附加到列表中,然后调用提交更改。但是在服务器端,所有相关实体都丢失了 代码: 客户端: DomainService1 domainService1= new DomainService1(); . . . WorkCode newWorkCode = new WorkCode(); newWorkCode.Date = DateTime.Now; . . . for(Work item in WorkList) { newWor

在客户端,我将所有相关实体(导航属性)添加到我的主实体,并将其附加到列表中,然后调用提交更改。但是在服务器端,所有相关实体都丢失了

代码:

客户端:

DomainService1 domainService1= new DomainService1();
.
.
.
WorkCode newWorkCode = new WorkCode();
newWorkCode.Date = DateTime.Now;

.
.
.

for(Work item in WorkList)
{
 newWorkCode.Works.Add(item) 
}

.
.
.

domainService1.WorkCodes.Attach(newWorkCode);
domainService1.InsertWorkCode(newWorkCode);     
      dsMaintenance.SubmitChanges(submitOperation =>
      {
        if (!submitOperation.HasError)
        {

        }
      },
            null);
[Update(UsingCustomMethod = true)]
public void InsertWorkCode(WorkCode workCode)
{
    //////// workCode.Works = 0 ///////////////////

  this.ObjectContext.WorkCodes.AddObject(workCode);            
}
服务器:

DomainService1 domainService1= new DomainService1();
.
.
.
WorkCode newWorkCode = new WorkCode();
newWorkCode.Date = DateTime.Now;

.
.
.

for(Work item in WorkList)
{
 newWorkCode.Works.Add(item) 
}

.
.
.

domainService1.WorkCodes.Attach(newWorkCode);
domainService1.InsertWorkCode(newWorkCode);     
      dsMaintenance.SubmitChanges(submitOperation =>
      {
        if (!submitOperation.HasError)
        {

        }
      },
            null);
[Update(UsingCustomMethod = true)]
public void InsertWorkCode(WorkCode workCode)
{
    //////// workCode.Works = 0 ///////////////////

  this.ObjectContext.WorkCodes.AddObject(workCode);            
}

我不知道你在这里干什么。但如果我想添加一些东西,我会这样做,而且效果很好:

Context = new DomainContext();

var customer = new Customer() { /* ... */ };
var order = new Order() { Customer = customer, /* ... */ };

Context.Customers.Add(customer);
Context.Orders.Add(order);
如果您喜欢另一种方法,也可以这样做:

var customer = new Customer() { /* ... */ };
var order = new Order { /* ... */ };

customer.Orders.Add(order);
Context.Customers.Add(customer);
现在您只需提交:

var submitOperation = Context.SubmitChanges();
submitOperation.Completed += // [...]

希望这有帮助。

这需要RIA服务标签吗?好像是的。您正在使用实体框架吗?代码优先?看起来不错,但在行上下文中。Customers.Add(customer);我将得到错误:Customer类型的EntitySet不支持添加操作。这很奇怪。您确定正在使用DomainContext吗?我已在服务器上定义了DomainService,并在客户端创建了一个新的DomainService对象并使用了它。您必须使用它为您生成的上下文。(名称应该类似于DomainService1Context)如何获取DomainServiceContext?有样品吗?还是辅导?