将具有联接的模型添加到许多没有导航属性的模型中

时间:2018-12-30 11:53:54

标签: entity-framework asp.net-web-api2

当我这样设置模型时,如何插入属于模型Tag的模型Post

发布

public class Post
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public virtual ICollection<Tag> Tags { get; set; }
    public Post()
    {
       Tags = new List<Tag>();
    }
}

标记

public class Tag
{
    public int Id { get; set; }
    public string Name { get; set; }
}

此问题建议创建一个Post对象,然后将Tags添加到Tags集合中,但我无法正常工作: Insert/Update Many to Many Entity Framework . How do I do it?

我想在数据库中已经将Tag添加到Post,我该如何使用EF。我是EF的新手。

这是我尝试过的方法,如果我将其发送到API,它不会插入任何记录,并且我可以看到数据库中不存在新的tag Id = 0,但是我会认为这会导致外键约束错误,不确定是否需要为标签自动生成ID:

{
    Name: "test"
}

API

[ResponseType(typeof(Tag))]
public IHttpActionResult PostTag(Tag tag)
{
    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    var post = new Post();
    var tags = new List<Tag>();
    tags.Add(tag);

    post.Tags.Add(tag);
    post.Id = 10;
    db.Entry(post).State = EntityState.Modified;
    db.SaveChanges();

    return CreatedAtRoute("DefaultApi", new { id = tag.Id }, tag);
}

1 个答案:

答案 0 :(得分:0)

我先获取帖子,然后添加更改。

UITableViewCell