-1

我正在尝试更新记录并将更改保存到数据库中,但似乎我不能,因为我无法获取我的列表。抱歉,如果我的问题不清楚。

让我知道是否有其他方法可以做到。

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>

4

1 回答 1

0

那永远行不通。您不能将ClientLog集合添加到期望的集合中ClaimAudit。这与尝试将 Order 类型的对象添加到 User 类型的对象集合中相同。我希望我说得通...

下面的示例将起作用,因为db.claimAudit.AddRange()需要两件事:

  1. 一个IEnumerable
  2. 一个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);
于 2016-06-14T09:53:50.513 回答