通过iCollection模型在WebAPI中添加记录?

时间:2016-03-03 09:04:39

标签: asp.net-web-api asp.net-web-api2

在WebAPI POST控制器中,使用EntityFramework,我想基于ICollection添加一些新记录。

所以,我有一个产品模型。此模型具有模型颜色的参考(ICollection)。 我有一个POST控制器,应该能够添加一个或多个绑定到产品的颜色。

我有以下代码:

public async Task<IHttpActionResult> PostProduct(string InternalReferenceId, int SupplierId, Colors colors)
        {
            Product dbProduct = db.Products.FirstOrDefault(s => s.InternalReferenceId == InternalReferenceId && s.SupplierId == SupplierId);

            if (dbProduct != null)
            {
        // iCollection
                dbProduct.Colors = colors;
                await db.SaveChangesAsync();
            }
            else
            {
                return NotFound();
            }

            return Ok();
}

JSON看起来像这样;

{
    "color": "white"
},
{
    "color": "black"
},
{
    "color": "green"
}

关于我如何将dbProduct.Colors分配给颜色的内容/模型(JSON?)的任何想法?

1 个答案:

答案 0 :(得分:0)

您正在尝试将单个项目Models.Color)分配给集合(ICollection<Models.Color>)。因此,您需要更改API以接受Models.Color

的集合
public async Task<IHttpActionResult> PostProduct(string InternalReferenceId, int SupplierId, ICollection<Color> colors)