Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从数据访问层连接两个表的Linq查询的返回类型_C#_Jquery_Linq_Data Access Layer - Fatal编程技术网

C# 从数据访问层连接两个表的Linq查询的返回类型

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

我正在开发一个三层应用程序,在数据访问层(DAL)上,我运行查询并返回如下结果

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();
在这种情况下,class
TRAIN
不再是合适的返回类型,因为它没有另一个表
STFREGs
中需要的两个字段


标准的C#方法是什么

只需将这两个属性添加为POCO的扩展。您可以在同一个C#类文件中或作为该类的扩展名执行此操作。例如:

// TrainingRecordFields file
public partial class TrainingRecordFields
{
    ...
}

// TrainingRecordFieldsExt file
public partial class TrainingRecordFields
{
    ...
}

我喜欢这种方法,因为它可以让您跟踪从加入中获得的扩展属性。

谢谢您的回复。我需要返回类型的地方是在linq查询的第一个方法上,返回类型是当前列车。