C# 从数据访问层连接两个表的Linq查询的返回类型
我正在开发一个三层应用程序,在数据访问层(DAL)上,我运行查询并返回如下结果C# 从数据访问层连接两个表的Linq查询的返回类型,c#,jquery,linq,data-access-layer,C#,Jquery,Linq,Data Access Layer,我正在开发一个三层应用程序,在数据访问层(DAL)上,我运行查询并返回如下结果 public TRAIN getTrainingRecord(int id) { TRAIN ret = null; try { integradboDataContext db = new integradboDataContext(_connectionstring); var query = (from us in
public TRAIN getTrainingRecord(int id)
{
TRAIN ret = null;
try
{
integradboDataContext db = new integradboDataContext(_connectionstring);
var query = (from us in db.TRAINs
where us.id == id select us).FirstOrDefault();
ret = query;
}
catch (Exception ex) { misc.logerror(ex.Message, ex.StackTrace, ex.Source); }
return ret;
}
(from us in db.TRAINs
join st in db.STFREGs on us.STAFFNO equals st.STAFFNO
where us.id == id select us).FirstOrDefault();
然后在业务层(BL)上像这样使用它
类名TrainingRecordFields
只是一个POCO类
现在,我需要将另一个表连接到查询,以便检索另外两个字段。查询应该如下所示
public TRAIN getTrainingRecord(int id)
{
TRAIN ret = null;
try
{
integradboDataContext db = new integradboDataContext(_connectionstring);
var query = (from us in db.TRAINs
where us.id == id select us).FirstOrDefault();
ret = query;
}
catch (Exception ex) { misc.logerror(ex.Message, ex.StackTrace, ex.Source); }
return ret;
}
(from us in db.TRAINs
join st in db.STFREGs on us.STAFFNO equals st.STAFFNO
where us.id == id select us).FirstOrDefault();
在这种情况下,classTRAIN
不再是合适的返回类型,因为它没有另一个表STFREGs
中需要的两个字段
标准的C#方法是什么 只需将这两个属性添加为POCO的扩展。您可以在同一个C#类文件中或作为该类的扩展名执行此操作。例如:
// TrainingRecordFields file
public partial class TrainingRecordFields
{
...
}
// TrainingRecordFieldsExt file
public partial class TrainingRecordFields
{
...
}
我喜欢这种方法,因为它可以让您跟踪从加入中获得的扩展属性。谢谢您的回复。我需要返回类型的地方是在linq查询的第一个方法上,返回类型是当前列车。