小编Lue*_*eTm的帖子

使用所需的外键在OData中插入实体

EDIT-2: 经过数小时的研究和几乎所有与谷歌相关的链接变成紫色,我发现OData规范中存在"深插入"(链接)的概念.毕竟,即使没有链接,我正在做的事也应该有效.有谁知道如何在Microsoft OData客户端上启用它?有没有其他OData客户支持这个概念?

编辑:也许这是错误的方法,所以请告诉我,如果我做错了.无法保存真的阻碍了我们的进步!

我有OData v3的问题.我有一个Associate有必要的课程Address.当我尝试POST一个新的Associate时,由于该Address属性为null(EF6因外键违反而抛出DbUpdateException)而失败.我的Associate班级看起来像这样:

public class Associate
{
    public int Id { get; set; }

    [Required, StringLength(100)]
    public string Name { get; set; }

    [Required, StringLength(50)]
    public string Role { get; set; }

    public bool IsMailReceiver { get; set; }
    public bool IsLegalRepresentative { get; set; }

    [ForeignKey("AddressId")]
    public virtual Address Address { get; set; }
    public int AddressId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我使用Microsoft OData客户端,并尝试以下列方式添加关联:

var …
Run Code Online (Sandbox Code Playgroud)

.net c# odata asp.net-web-api

6
推荐指数
1
解决办法
2896
查看次数

拒绝特定实体的变更

我在WCF RIA服务中遇到以下问题:我有一个表Customer和一个表Address.客户可以拥有0 ... n个地址.有一个用于编辑客户的表单,其中有一个显示地址的Datagrid.您可以通过单击" 添加/编辑"在子窗口中添加/编辑地址.现在是这样的:

问题是用户应该始终能够取消编辑.这不是问题,除了:如果您创建新客户并向该客户添加地址,则需要编辑该地址但希望取消该编辑.

  • 您不能对上下文执行RejectChanges,因为它会擦除客户的地址.
  • 您不能使用单独的上下文,因为您无法建立外键关系.

你们怎么解决这个问题?

c# silverlight silverlight-4.0 wcf-ria-services

5
推荐指数
1
解决办法
1030
查看次数