我试图更新记录并保存对数据库的更改,但我似乎无法获取我的列表。对不起,如果我的问题不明确。
如果我能采取其他方式,请告诉我。
List<ClaimHistoryModel.ClientLog> ClaimLogs = new List<ClaimHistoryModel.ClientLog>();
using (SidDbContext db = new SidDbContext())
{
var oldClaim = db.Client.FirstOrDefault(x => x.ClaimId == clientModel.ClaimId);
oldClaim.CellNumber = clientModel.CellNumber;
ClaimLogs = GetClaimLog(db); //here am getting a method which update the Logtbl.(all the changes will be saved) no error on this funstion
//it works if i save changes here but it won't update the history table which shows the fieds before and after.
db.claimAudit.AddRange(ClaimLogs ); Error here
db.SaveChanges();
}
我收到此错误:
无法从
System.Collections.Generic.List<ClaimHistoryModel.ClientLog>
转换为System.Collections.Generic.IEnumerable<claimAudit>
答案 0 :(得分:0)
那永远不会奏效。您无法将ClientLog
集合添加到期望ClaimAudit
的集合中。这与尝试将类型为Order的对象添加到User类型的对象集合相同。我希望我&# 39;有意义......
以下示例将起作用,因为db.claimAudit.AddRange()
需要两件事:
IEnumerable
IEnumerable
ClaimAudit
醇>
并且List<ClaimAudit>
满足这两个条件。只要您将List<ClaimAudit>
更改为List<ClientLog>
,您就违反了第2点,代码就会中断
var claimAudits = new List<ClaimAudit>();
var claim1 = new ClaimAudit();
var claim2 = new ClaimAudit();
claimAudits.Add(claim1);
claimAudits.Add(claim2);
db.claimAudit.AddRange(claimAudits);
也许您确实需要插入声明日志而不是声明审核,如果是这种情况,则只需更改此行:
db.claimAudit.AddRange(ClaimLogs);
到此:
db.claimLogs.AddRange(ClaimLogs);