【发布时间】:2011-03-20 10:29:45
【问题描述】:
好的,我不得不承认,直到现在我仍然不知道使用 linq to sql 返回多个对象的最佳方法。
public IList<Course> GetAllStudentCourses()
{
IList<Course> output = new List<Course>();
using (lenDataContext db = new lenDataContext())
{
var result =
from ct in db.CourseByTutors
join c in db.Courses on ct.CourseId equals c.Id
join u in db.Users on ct.TutorId equals u.Id
select new
{
c,
u,
};
foreach (var r in result)
{
Course course = new Course();
course.CourseByTutor = new CourseByTutor();
course = r.c;
course.IsGroupString = (r.c.IsGroup == 1) ? "Yes" : "No";
course.User = r.u;
output.Add(course);
}
}
return output;
}
我想将 Course 和 User 对象返回给 UI。
private void InitializeData()
{
Course c = new Course();
dgCourses.AutoGenerateColumns = false;
bs.DataSource = c.GetAllStudentCourses().ToList();
dgCourses.DataSource = bs; //bs is bindingsource
}
如何显示用户数据,例如给 Gridview 命名? 我已将 User.Name 放入 datapropertyName 但它仍然没有显示任何内容。 我的 Course.User 有价值。
【问题讨论】:
-
是的,我如何将一些用户属性显示回我的 GV(Gridview),因为我将对象返回为
-
您的架构中没有定义 CourseByTutors -> Course 和 CourseByTutors -> User 之间的关系吗?这就是你在查询中加入他们的原因吗?
-
是的,我没有定义关系。我在我的 UI 中尝试了这个,Course c = new Course(); GVCourse.datasource = c.GetAllStudentCourses().ToList();然后我将 Gridview dataPropertyName 设置为 c.User.Name 和 Course.User.Name 但两者都没有显示我的名字
-
你试过“User.Name”(没有课程部分)吗?
-
@Joel Gauvreau:我什至尝试只将 User.Name 放到 dataproteprtyName 中,但它可以告诉我任何东西。
标签: c# linq-to-sql