Это моя схема таблицы в Microsoft SQL db:
[account_id](PK, FK, int, not null)
[business_id](PK, FK, int, not null)
[identifier](nvarchar(100), null)
Прежде чем добавить новую строку в эту таблицу, я хочу проверить, существует ли строка с одинаковыми значениями в двух первичных ключах.Например, у меня есть таблица:
account_id | business_id | identifier
_____________________________________
1 | 2 | abc
2 | 3 | cdf
Теперь я пробую разные случаи:
context.add(account_id: 1, business_id: 3, identifier: null) => success
context.add(account_id: 1, business_id: 2, identifier: null) => fail
context.add(account_id: 2, business_id: 2, identifier: null) => success
context.add(account_id: 3, business_id: 3, identifier: null) => success
Короче говоря, я хочу проверить, существует ли уже строка с двумя теми же первичными ключами, что и account_id
и business_id
, в противном случае создайте новую строку.
Это мой код без проверки дубликатов:
[HttpPost("generate-identifier")]
[ProducesResponseType(typeof(void), 204)]
public IActionResult GenerateIdentifier(GenerateIdentifierRequest model)
{
if (!ModelState.IsValid) return BadRequest(GetValidationErrors(ModelState));
BusinessAccount businessAccount = new BusinessAccount() {
AccountId = GetCurrentUserId(),
BusinessId = model.BusinessId,
Identifier = model.Identifier
};
context.Add(businessAccount);
context.SaveChanges();
return NoContent();
}