1
我可能會錯誤地解決這個問題,但我有一個預訂表和聯繫表,並且有一個聯接表連接兩個聯繫表。Linq Group By or Distinct with Join
我需要獲得與包含給定字符串的電子郵件相關聯繫的所有預訂。
換句話說,用戶希望通過聯繫電子郵件搜索預訂。
這是我想出來的。它可以工作,但會爲每個預訂返回重複的行。我一直無法弄清楚如何分組行或使用不同的方法,在T-SQL ...
if (!String.IsNullOrWhiteSpace(form["contactemail"]))
{
string contactemail = form["contactemail"];
IList<int> bookingids = bookings.Select(x => x.bookingid).ToList();
IQueryable<contact> con = (from y in db.bookingscontacts where bookingids.Contains(y.bookingid) select y.contact);
//EDIT: I hadn't included the email filter...
IQueryable<contact> conmatches = (from c in con where c.email1.Contains(contactemail) select c);
IList<int> contactids = conmatches.Select(x => x.contactsid).ToList();
bookings = (from r in bookings from c in db.bookingscontacts where contactids.Contains(c.contactsid) && bookingids.Contains(r.bookingid) select r);
}
事實上,似乎有某種類型的初始「預訂」表,結果也被稱爲「預訂」,可能會令人困惑。 – jjj