У меня есть две сущности
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; }
}
ВЫШЕ сущностей
- Необязательно - Основной ключ (таблица ProductOption)
- Необязательно --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<ReturnString> SaveProductOption(ProductOptionRequest request)
{
ReturnString returnString = new ReturnString();
ProductOption details = new ProductOption();
details.OptionName = request.Name;
object result = await productOptionRepository.InsertAsync(details, true);
foreach (ProductValuesRequest valueRequest in request.productValues)
{
ProductOptionValue res = new ProductOptionValue();
res.OptionId = valueRequest.OptionId;
res.ValueName = valueRequest.ValueName;
object response = await productOptionValueRepository.InsertAsync(res, true);
}
returnString.StringValue = result != null ? $"{request.Name} saved successfully" : "";
return returnString;
}
Я написал выше шаблон.но я не хочу передавать OptionId
.Как написать один запрос вставки без передачи параметра OptionId
.Потому что его внешний ключ таблицы ProductOption
.