【发布时间】:2015-04-23 04:01:56
【问题描述】:
我正在开发一个 3 层应用程序,在数据访问层 (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;
}
然后在业务层(BL)上像这样使用它
public TrainingRecordFields getTrainingRecord(int id)
{
TrainingRecordFields ret = null;
try
{
var query_raw = data.getTrainingRecord(id);
var query = new TrainingRecordFields();
{
query.id = Convert.ToInt32(query_raw.id);
query.staffNo = query_raw.STAFFNO;
query.courseTitle = query_raw.TITLE;
query.dateStarted = query_raw.MDATE1.ToString();
query.dateEnded = query_raw.MDATE2.ToString();
query.organizers = query_raw.ORGANISE;
query.venue = query_raw.VENUE;
};
ret = query;
}
catch (Exception ex) { misc.logerror(ex.Message, ex.StackTrace, ex.Source); }
return ret;
}
类名TrainingRecordFields只是一个POCO类。
现在,我需要将另一个表加入到查询中,以便检索另外两个字段。查询应该是这样的
(from us in db.TRAINs
join st in db.STFREGs on us.STAFFNO equals st.STAFFNO
where us.id == id select us).FirstOrDefault();
在这种情况下,类 TRAIN 不再是合适的返回类型,因为它没有我需要的另一个表 STFREGs 中的两个字段。
执行此操作的标准 C# 方法是什么?
【问题讨论】:
标签: c# jquery linq data-access-layer