Если таблицы имеют отношение внешнего ключа, присутствующее в вашей базе данных или смоделированное в вашем dbml, вы также можете сделать следующее:
from t1 in Table1
where t1.Table2.IsActive == "true" // assuming that IsActive is a string and not a boolean
select new { t1.CRNo, t1.Table2.StageId }
Чтобы ускорить процесс, вам, возможно, следует использовать DataLoadOptions
, чтобы указать, что для каждой t1
должна быть выбрана также запись Table2
:
using (ctx = new MyDataContext()) {
var options = new DataLoadOptions();
options.LoadWith<Table1>(x => x.Table2);
ctx.LoadOptions = options;
var res = from t1 in Table1
where t1.Table2.IsActive == "true"
select new { t1.CRNo, t1.Table2.StageId };
}
Кроме того, вы можете посмотреть здесь примеры синтаксиса linq.
Редактировать - рассматривать только активные записи:
from t1 in table1
join t2 in table2.Where(x => x.IsActive == "true") on t1.CRNo equals t2.CRNo
select new { t1.CRNo, t2.StageNo };