Я пытаюсь обновить таблицу, которая вызывает другую таблицу, используя Entity Framework, она используется для чтения файла XML. Когда я добавляю информацию, она корректно добавляет информацию в таблицы, но когда я пытаюсь ее обновить, она не меняет информацию при запуске SaveChanges (), но не возвращает никакой ошибки.
Ниже представлен класс, созданный из EDI_X12_110_DOC, у меня есть список EDI_X12_110_DOC_NAME.
[Table("EDI_X12_110_DOC")]
public class EDI_X12_110_DOC
{
[Key, Column(Order = 0)]
public string SenderID { get; set; }
public string ReceiverID { get; set; }
public string DocumentDate { get; set; }
public string DocumentTime { get; set; }
[Key, Column(Order = 1)]
public string DocumentNumber { get; set; }
[Key, Column(Order = 2)]
public string InvoiceNumber { get; set; }
public string ShipMethodOfPayment { get; set; }
[XmlElementAttribute("Name")]
public List<EDI_X12_110_DOC_NAME> Name { get; set; }
}
[Table("EDI_X12_110_DOC_NAME")]
public class EDI_X12_110_DOC_NAME
{
[Key, Column(Order = 0)]
public string NameCode { get; set; }
public string NameValue { get; set; }
[Key, Column(Order = 1)]
public EDI_X12_110_DOC EDI_X12_110_DOC { get; set; }
}
Ниже приведен код, в котором я добавляю или обновляю таблицы в базе данных, он работает для добавления, но если я что-то изменяю в файле XML и снова вызываю этот код, измененные поля не обновляются в таблице.
var xmlSerializer = new XmlSerializer(typeof(EDI_Sintel.Model.Docto_X12_110));
var theResponse =(EDI_Sintel.Model.Docto_X12_110)xmlSerializer.Deserialize(readFile);
foreach (var item in theResponse.Docto)
{
try
{
db.EDI_X12_110_DOC.AddOrUpdate(item);
db.SaveChanges();
}
catch (Exception ex)
{
Console.WriteLine();
}
}
Как я мог решить эту проблему?