【发布时间】:2012-07-30 21:33:55
【问题描述】:
我是 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 对象,但我不确定这样做是否正确。
一旦我拥有所有条目.. 然后我可以删除重复项,但不确定我是否走在正确的道路上?
有更好的方法吗?
【问题讨论】: