using System.Collections.Generic;
public DateTime action_date_time;
public string email_from;
public string email_subject;
public string email_body;
public class DataClassesDataContext
public List<MyTable1> Table1;
public List<MyTable2> Table2;
public List<MyTable3> Table3;
public DataClassesDataContext()
MyTable4 SomeTable4 = new MyTable4()
MyTable3 SomeTable3 = new MyTable3()
MyTable2 SomeTable2 = new MyTable2()
MyTable1 SomeTable1 = new MyTable1()
someId = "someId", action_date_time = DateTime.Now, Table3 = SomeTable3, Table4 = SomeTable4
Table1 = new List<MyTable1>()
Table2 = new List<MyTable2>()
Table3 = new List<MyTable3>()
public DateTime dateTime;
public string email_from;
public string email_subject;
public string email_body;
public static void Main()
string unique_id = "test";
DataClassesDataContext dc = new DataClassesDataContext();
List<MyObject> MyObjects = (
join e in dc.Table2 on a.someId equals e.someId into j1
from j2 in j1.DefaultIfEmpty()where a.Table3.unique_id == unique_id
orderby a.action_date_time descending
a.Table4.name, a.action_date_time
action = ga.Key.name, dateTime = ga.Key.action_date_time, sentEmails = ga.Count() < 1 ? null : (
select g).FirstOrDefault() == null ? null : (
email_to = g.email_to, email_from = g.email_from, email_cc = g.email_cc, email_bcc = g.email_bcc, email_subject = g.email_subject, email_body = g.email_body