obj имеет тип
IEnumerable<TaxLaw>
, поэтому каждый итеам равен
TaxLaw
Затем вы пытаетесь сохранить в
_taxhistoryrepo
, который, по моему мнению, использует
TaxHistory
Эта часть кода:
foreach (var list in obj)
{
list.CompanyCode = list.CompanyCode;
list.CummulativeAmount = list.CummulativeAmount;
list.Percentage = list.Percentage;
list.ModifiedDate = DateTime.UtcNow;
list.ModifiedDate = list.ModifiedDate;
list.Status = EntityStatus.Active;
_taxhistoryrepo.DbSetEntity.Add(list);
await _taxhistoryrepo.DbContext.SaveChangesAsync();
await Task.FromResult(_repository.SingleSave(obj));
}
Итерация через obj, поэтому "список" - это TaxLaw, но здесь:
_taxhistoryrepo.DbContext.SaveChangesAsync()
Вы добавляете тип TaxLaw вТаблица TaxHistory
Я также считаю, что это опечатка, которую вы делаете
list.CompanyCode = list.CompanyCode;
...
, которая в основном устанавливает ту же самую переменную с той же переменной
Чего, я полагаю, вы хотели достичьэто:
public async Task<bool> SaveOrUpdate(IEnumerable<TaxLaw> obj)
{
using (var trans = _taxhistoryrepo.DbContext.Database.BeginTransaction())
{
var lists = new List<TaxTableHistory>();
foreach (var list in obj)
{
var taxHistory = new TaxHistory();
taxHistory.CompanyCode = list.CompanyCode;
taxHistory.CummulativeAmount = list.CummulativeAmount;
taxHistory.Percentage = list.Percentage;
taxHistory.ModifiedDate = DateTime.UtcNow;
taxHistory.ModifiedDate = list.ModifiedDate;
taxHistory.Status = EntityStatus.Active;
//manually mapped TaxLaw into TaxHistory
_taxhistoryrepo.DbSetEntity.Add(taxHistory); // save TaxHistory
await _taxhistoryrepo.DbContext.SaveChangesAsync();
await Task.FromResult(_repository.SingleSave(list)); //here save "list" not obj as you would save whole collection each iteration of the loop
}
trans.Commit();
}
return true;
}