繁体   English   中英

Entityframework 插入到表 FK 关系中

[英]Entityframework Insert into Table FK Relationship

我有两个表用户和活动

这些表是:

  1. 用户表有两列(用户ID PK,用户名)

  2. 活动表有三列(ActivityId PK、Location、userid FK)活动表引用用户表和userid

使用实体框架,我用这些表搭建了数据库。 然后我编写了插入用户表的代码

  [HttpPost]
    public IActionResult createUser(User user)
    {
        using(var context =  new postgresContext())
        {
            var c = new User()
            {
                Userid = user.Userid,
                Username = user.Username
            };

            context.Users.Add(c);
            context.SaveChanges();
        }

        return Ok();
    }

但是,我收到以下错误

     {
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
  "title": "One or more validation errors occurred.",
  "status": 400,
  "traceId": "00-0dedc95e91a6fdb2e9da01333f7d19ff-b2605a6c7e5bd5d4-00",
  "errors": {
    "user": [
      "The user field is required."
    ],
    "$.activities[0].user": [
      "The JSON value could not be converted to GISSolution.API.LearnModel.User. Path: $.activities[0].user | LineNumber: 8 | BytePositionInLine: 22."
    ]
  }
}

swagger 中的 model 是

{
  "userid": 0,
  "username": "string",
  "activities": [
    {
      "activityid": 0,
      "location": "string",
      "userid": 0,
      "user": "string"
    }
  ]
}

我需要插入用户表,但 model 是由活动构成的。 请问我该如何处理?

正在使用 PostgreSQL 吗? 请确认。 似乎还需要用户字段,您的 swagger model 不包含用户字段的任何条目。 理想情况下,如果它的类型是增量数据类型,则必须使用串行类型在数据库中将其设置为自动增量,见下文 SQL 以在 PostgreSQL 中创建表

创建表公司(ID 序列主键,名称文本不是 NULL,年龄 INT 不是 NULL,地址字符(50),工资实数);

在您的 model class 中,两个表之间确实存在关系,这可能是您嵌套活动 object 的原因。 似乎两个表之间存在父子关系,请查看下面链接中的这篇文章,似乎与您的经历相似。

具有嵌套 object 的实体框架数据插入,具有一个请求自动递增主键

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM