无法根据主键ID更新多个表中的数据

时间:2019-04-23 05:53:33

标签: c# .net sql-server entity-framework asp.net-core-webapi

我有两个实体

public class ProductOption
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int OptionId { get; set; }

    [Required]
    [MaxLength(40)]
    public String OptionName { get; set; }
}

public class ProductOptionValue
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int ValueId { get; set; }
    public int OptionId { get; set; }

    [Required]
    [MaxLength(32)]
    public String ValueName { get; set; }
}

以上实体

Optionid-主键(ProductOption表)

Optionid --foreignkey(ProductOptionValue表)

我有2个模型课程

public class ProductOptionRequest
{
    public string Name { set; get; }
    public List<ProductValuesRequest> productValues { get; set; }
}

public class ProductValuesRequest
{
    public int OptionId { get; set; }
    public string ValueName { get; set;}
}

现在我想将数据更新到那些表中。我写了下面的代码

public async Task<ReturnBoolean> UpdateProductOption(ProductOptionRequest request)
{
        ReturnBoolean returnBoolean = new ReturnBoolean();
        ProductOption option = await productOptionRepository.GetByIdAsync(request.Id);
        option.OptionName = request.Name;
        await productOptionRepository.UpdateAsync(option, true);
        foreach (ProductValuesRequest valueRequest in request.productValues)
        {
            ProductOptionValue res = new ProductOptionValue();
            res.ProductOption = option;
            res.ValueName = valueRequest.ValueName;
            await productOptionValueRepository.UpdateAsync(res, true);
        }
        returnBoolean.BooleanValue = true;
        return returnBoolean;
    }

问题是valueid(其在ProductOptionValue表中的标识列)。因此,请告诉我解决方案。如何传递valueid并更新这些查询。

0 个答案:

没有答案