私は LINQ に非常に慣れていないので、自分のプロジェクトを実行するための最適なルートについてのガイダンスを探しています。
電子メールまたは SMS 経由で通知メッセージを送信するアプリケーションを開発しています。
現在、SQL データベースに 3 つのテーブルがあり、C# で取得しています:-
var contacts = db.GetTable<Contact>();
var distributionLists = db.GetTable<DistributionList>();
var JunctionTable = db.GetTable<ContactsDistribution>();
ユーザーは、リストボックス コントロールから複数の配布リストを選択できます。選択した各アイテムのリスト/オブジェクトにレコードを追加する方法を見つける必要があります。連絡先は複数の配布リストに属する可能性があるため、最終データを取得したら、重複を削除する必要があります。
最後に、同じ通知を 1 人の連絡先に複数回送信したくないため、リスト内の連絡先ごとに 1 つのエントリのみが必要です。
私が持っているLINQクエリは以下の通りです:-
foreach (var li in listBox1.SelectedItems)
{
string text = "";
text += li.ToString();
var InitialList = (from j in JunctionTable
where j.DistributionName.Equals(text)
join c in contacts
on j.ContactID equals c.ContactID
select new { c.ContactID, j.DistributionName }).ToList();
}
リストボックスで選択したアイテムごとに、このクエリに追加し続ける必要があります。List オブジェクトを使用してみましたが、これが正しい方法かどうかはわかりません。
すべてのエントリを取得したら..重複を削除できますが、これで正しい道を進んでいるかどうかわかりません??
より良いアプローチはありますか?