我有以下带注释的模型
public class TypeA
{
public int TypeAId { get; set; }
[Required]
public TypeB B { get; set; }
public string AValue { get; set; }
}
public class TypeB
{
public int TypeBId { get; set; }
public string BValue { get; set; }
}
由 WCF 数据服务使用实体框架公开为 v3 odata。当我尝试使用 DataServiceContext 更新 TypeA 时,例如
var ctx = new Service.Context(new Uri("http://localhost/TestUpdateService/TestUpdateService.svc"));
var t = ctx.theATypes.Expand(p => p.B).First();
t.AValue = "New value";
ctx.UpdateObject(t);
ctx.SaveChanges();
我在服务中收到一个 DbEntityValidationException,说明“需要 B 字段”
请求“MERGE /TestUpdateService/TestUpdateService.svc/theATypes(1) HTTP/1.1”的正文包含 AValue 属性更改,但不包含到属性 B 的任何链接信息(这是我对验证原因的猜测服务失败)。我是否缺少有关更新数据服务的信息?