有5个框架,不在数据库中使用关系外键,我想知道4.0如何改进这段代码垃圾,我需要在多个表连接后返回多个对象。
public IList<User> GetTutorByCourseId(int courseId)
{
IList<User> output = new List<User>();
using (leDataContext db = new leDataContext())
{
try
{
var m = from c in db.Courses
join ct in db.CourseByTutors on c.Id equals ct.CourseId
join u in db.Users on ct.TutorId equals u.Id
where c.Id == courseId
select new
{
c, ct, u
};
foreach (var result in m)
{
User user = new User();
user.Id = result.u.Id;
user.Name = result.u.Name;
user.CourseTutor.Id = result.ct.Id;
user.Course.Name = result.c.Name;
output.Add(user);
}
return output;
}
catch (Exception ex)
{
Logger.Error(typeof(User), ex.ToString());
throw;
}
}
}
在GUI中有3个对象被返回给调用者。但是,为了做到这一点,我必须在User类中添加public CourseByTutors{get;set;}和public Course(get;set;)属性,但我发现这会破坏我的代码。在这种情况下,4.0版本如何解决这个问题?我读到了一些关于select tupel的内容..??