我正在尝试更新一个使用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();
}
}
我该如何解决这个问题?