2011-05-17 64 views
0

在客户端我添加所有相关实体(导航性能),我的主要实体并将其连接到列表中,并调用SubmitChange。但在服务器端,所有相关的实体都失踪了!实体发送到服务器问题

代码:

客户:

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);    
} 
+0

这是否需要RIA服务标签?它似乎是这样。你在使用实体框架吗?代码优先? – BenCr 2011-05-17 10:06:55

回答

0

我不知道你在做什么在这里。但是,如果我想补充的东西,我不喜欢这样,它的工作原理:

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 += // [...] 

希望这会有所帮助。

+0

它似乎很好,但在行Context.Customers.Add(客户);我将得到错误:类型客户的EntititySet不支持添加操作。 – ehsun7b 2011-05-17 10:21:06

+0

这很奇怪。你确定你正在使用DomainContext吗? – LueTm 2011-05-17 11:11:36

+0

我已经在服务器上定义了一个DomainService,并在客户端创建了一个新的DomainService对象并使用它。 – ehsun7b 2011-05-17 11:38:06