1

我正在从 XLS 文档中读取数据,并且正在使用出色的LINQ to Excel库。我遇到的问题更多是处理 LINQ 的问题。

我从 Excel 表中读取了新的和更新的事件。所以我想检查数据库中是否已经存在该事件,如果存在,我想将它与该事件联系起来,然后用我读过的 excel 中的所有新数据更新它。一些代码:

var excel = new ExcelQueryFactory("filepath");

var getincident = from jj in excel.Worksheet<Incident>("Sheet1")
                  select jj;

foreach (var incident in getincident)
{
    if (incident.CallId.Trim() == "")
        break;
    if (exists(incident.CallId, context))
    {
        incident.id = (from b in context.Incidents
                       where b.CallId == incident.CallId
                       select b.id
                      ).First();
        context.Incidents.Attach(incident, true);
    }
    else
    {
        context.Incidents.InsertOnSubmit(incident);
    }

    context.SubmitChanges();

}

并且存在是一个简单的检查事件是否存在:

private bool exists(string piCallId, DataClasses1DataContext context)
{
    return (from b in context.Incidents
            where b.CallId == piCallId select b
           ).Any();
}

在添加所有新数据之前,我首先需要一些方法来检查事件是否存在,然后提交更改。请帮忙。

4

1 回答 1

0

这是做你想做的吗?

var existingIncident = 
    (from b in context.Incidents
     where b.CallId == incident.CallId
     select b
     ).SingleOrDefault();

 if (existingIncident != null)
 {
      existingIncident.xxx = incident.xxx;
      existingIncident.yyy = incident.yyy;
      ...
 }
 else
    context.Incidents.InsertOnSubmit(incident);
于 2010-11-13T17:12:25.460 回答