Lets say I have 2 entities, there is no relationship between them
I wanted to make sure in db I have unique addresses so I tried the following
public class SaleAddress : SaveConfig
{
[Key]
[Required]
public Guid SaleAddressId { get; set; }
public Guid SignatureId { get; set; }
public string Address { get; set; }
}
public class DepositAddress : SaveConfig
{
[Key]
[Required]
public Guid DepositAddressId { get; set; }
public int? Index { get; set; }
public bool Active { get; set; }
public Guid SignatureId { get; set; }
public string Address { get; set; }
}
I created constraint for unique address
modelBuilder.Entity<SaleAddress>()
.HasIndex(e => e.Address)
.IsUnique();
// Ensure Address is unique no duplicated address
modelBuilder.Entity<DepositAddress>()
.HasIndex(e => e.Address)
.IsUnique();
is it possible to also prevent to have same (saleaddress) Address in depositaddress table and vice versa or do I have to manually check before insert
Example. Lets say I want to insert new deposit addresses
var depositAddress = new DepositAddress
{
Address = "Foo"
};
await _repository.DepositAddressesRepository.Add(depositAddress);
var depositAddress = new DepositAddress
{
Address = "Foo1"
};
await _repository.DepositAddressesRepository.Add(depositAddress);
await _repository.SaveAsync();
//above will go through “Foo” and “Foo1” are unique
//the following should throw exception because there is already “Foo1” in deposit address
var saleAddress = new SaleAddress
{
Address = "Foo1"
};
await _repository.SaleAddressesRepository.Add(saleAddress);
await _repository.SaveAsync();
is this possible to somehow configure this in efcore or do i have to manually check before insert