【发布时间】:2011-07-05 06:26:36
【问题描述】:
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 .. ??
【问题讨论】:
-
您可以选择一个元组,或者至少在 AFAIK 3.5 中选择一个动态类型。
-
你能通过转换上面的代码给我看一个例子吗?我实际上正在决定是否转换为 4.0 或不..
标签: c# linq frameworks