0
我在列表中有一堆自定義實體記錄(來自csv文件)。
檢查哪些記錄是新的並創建那些記錄的最佳方法是什麼?
在這種情況下,相等性檢查基於單個文本字段,但我需要在其他地方執行相同性檢查基於查找和2個文本字段的相同事情。
Dynamics CRM 2011 LinQ查找新記錄
爲了討論可以說我將帳戶記錄,這是我目前有:
private void CreateAccounts()
{
var list = this.GetAccounts(); // get the list of Accounts, some may be new
IEnumerable<string> existingAccounts = linq.AccountSet.Select(account => account.AccountNumber); // get all Account numbers in CRM, linq is a serviceContextName variable
var newAccounts = list.Where(account => !existingAccounts.Contains(account.AccountNumber)); // Account numbers not in CRM
foreach (var accountNumber in newAccounts) // go through the new list again and get all the Account info
{
var account = newAccounts.Where(newAccount => newAccount.AccountNumber.Equals(accountNumber)).FirstOrDefault();
service.Create(account);
}
}
有沒有更好的方式來做到這一點?
我似乎是通過列出過很多次迭代,但它必須大於查詢CRM多次更好:
foreach (var account in list)
{
// is this Account already in CRM
// if not create the Account
}