У меня нет проблем при вставке в базу данных, но когда я сделал процесс обновления, возникли следующие проблемы.EF InsertOrUpdate Proble
Дополнительная информация: Привязка объекта типа 'kgSoft_Pro.ORM.Models.StokKarti' не удалась, поскольку другой объект того же типа уже имеет такое же значение первичного ключа. Это может произойти при использовании метода «Прикрепить» или установки состояния объекта в «Без изменений» или «Модифицировано», если любые объекты на графике имеют конфликтующие значения ключей. Это может быть связано с тем, что некоторые объекты являются новыми и еще не получили значения ключей базы данных. В этом случае используйте метод «Добавить» или «Добавленное» состояние объекта для отслеживания графика, а затем, если необходимо, установите состояние не новых объектов «Без изменений» или «Модифицировано».
AddOrUpdate Код
public int InsertOrUpdate(T Entity)
{
var type = Entity.GetType();
var property = type.GetProperty("id");
var propValue = (int)property.GetValue(Entity);
dbContext.Entry(Entity).State = propValue > 0 ? EntityState.Modified : EntityState.Added;
return Save();
}
Сохранить коды
StokKarti stok = new StokKarti();
stok.Adi = txtStokAdi.Text;
stok.AlisFiyati = decimal.Parse(clcAlisFiyati.EditValue.ToString());
stok.StokKodu = btnStokKodu.EditValue.ToString();
stok.Barkod = txtBarkod.Text;
stok.DigerSatis = decimal.Parse(clcDigerFiyat.EditValue.ToString());
stok.GrupKod = lkGrupKodlari.EditValue.ToString();
stok.hizlisatis = chkSatisEkrani.Checked;
stok.PerakendeSatis = decimal.Parse(clcPerakende.EditValue.ToString());
stok.ToptanSatis =decimal.Parse(clcToptanFiyat.EditValue.ToString());
stok.RiskLimiti = (int?)txtRiskLimiti.EditValue ?? 0;
stok.KdvOrani = (int)lkKdvOran.EditValue;
stok.Birim = lkBirim.EditValue.ToString();
stok.Marka = lkMarkasi.EditValue.ToString();
stok.id = id;
sk.InsertOrUpdate(stok);
Сущность Framework 6, это свойство, к сожалению, нет. –
Откуда берется 'dbContext'? Каков его жизненный цикл? –
Я решил проблему. [code] dbContext.DbSet() .AddOrUpdate (Entity) [код] –