c# - 使用导航属性发布新实体

标签 c# entity-framework asp.net-web-api odata asp.net-web-api2

我正在努力寻找一个示例,说明如何在涉及导航属性时向 OData v4 服务创建 (POST) 新实体。

例如,假设我有以下两个模型:

class Item
{ 
    [Key]
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }

    [Required]
    public virtual Group Group { get; set;}
}

class Group
{
    [Key]
    public int Id { get; set; }

    [Required]
    public string Name { get; set; }
}

如果我想创建一个属于已定义组的项目(例如,ID = 123),那么我将发布:

{
  "Name": "New item",
  "Group": ???
}

我需要为团体指定什么?我假设我需要以某种方式通过 ID 来引用它。当然,我可以在 Item 实体 (GroupId) 中包含外键并添加它。这就是我目前正在做的事情,而且它有效,但这是唯一的方法吗?我应该做什么?谢谢。

最佳答案

只需像这样嵌套 JSON:

{
    "Name": "New item",
    "Group": 
    { 
        "Id": 5, 
        "Name": "GroupName"
    }
}

关于c# - 使用导航属性发布新实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26408709/

相关文章:

c# - 无法在异步方法中隐式转换

c# - 如何在 OData v4 API 中拥有动态可查询实体?

c# - EntityFramework .Take() 随着时间的推移性能下降

azure - 将生成的 XML 文档包含在 Azure 云服务包中

c# - 错误 - 不允许连接字符串名称属性

c# - 如何在我的 Web API 2 解决方案中发送 "forbidden"响应?

c# - 如何将可空类型隐式转换为不可空类型

c# - 在静默模式下安装 SQL Server Express 2008 以及 C# 应用程序

c# - Entity Framework - 一对多 - 从两个表中选择

c# - 带有 OWIN 的 webapi 中的复杂 JSON Web token 数组