【问题标题】:Entity Send to Server Problem实体发送到服务器问题
【发布时间】:2011-05-17 09:50:52
【问题描述】:

在客户端,我将所有相关实体(导航属性)添加到我的主要实体并将其附加到列表并调用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);            
}

【问题讨论】:

  • 这需要 RIA 服务标签吗?似乎确实如此。你在使用实体框架吗?代码优先?

标签: silverlight-4.0 entity domainservices


【解决方案1】:

我不确定你在这里做什么。但是,如果我想添加一些东西,我会这样做并且它可以工作:

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

希望这会有所帮助。

【讨论】:

  • 看起来不错,但在 Context.Customers.Add(customer);我会得到错误:客户类型的实体集不支持添加操作。
  • 这很奇怪。您确定您正在使用 DomainContext 吗?
  • 我在服务端定义了一个DomainService,在客户端新建了一个DomainService对象并使用了。
  • 您必须使用它为您生成的上下文。 (名称应该类似于 DomainService1Context)
  • 如何获取 DomainServiceContext?有样品吗?还是教程?
猜你喜欢
  • 1970-01-01
  • 2019-12-16
  • 2014-03-30
  • 2011-09-02
  • 2017-03-30
  • 2016-03-31
  • 1970-01-01
  • 2015-02-25
  • 2019-04-29
相关资源
最近更新 更多