XLSドキュメントからデータを読み取っていて、優れたLINQtoExcelライブラリを使用しています。私が抱えている問題は、LINQの処理に関する問題です。
エクセルシートから新しいインシデントと更新されたインシデントを読みました。したがって、インシデントがデータベースにすでに存在するかどうかを確認し、存在する場合は、そのインシデントに接続してから、読み取った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();
}
すべての新しいデータを追加する前に、まずインシデントが存在するかどうかを確認してから、変更を送信する方法が必要です。助けてください。