我像这样在我的模型中创建了一个列表属性
public virtual List<String> listOfDays { get; set; }
然后我将其转换并存储在列表中,如下所示:
for (int i = 0; i < 30 i++)
{
var enrollment = new Enrollment();
enrollment.StudentID = id;
enrollment.listOfDays = searchString.ToList();
db.Enrollments.Add(enrollment);
db.SaveChanges();
}
我在这里放了一个断点enrollment.listOfDays = searchString.ToList();
……一切都很好。我看到转换已执行,我可以看到 listOfDays 中的值。
所以我想我会在我的数据库中找到一个名为 listOfDays 的列,因为我首先编写代码但该属性不存在。
然后我想我会尝试像这样访问它......
var classdays = from e in db.Enrollments where e.StudentID == id select e.listOfDays;
var days = classdays.ToList();
//here I get an error message about this not being supported in Linq.
问题:
- 为什么您认为该属性不在数据库中?
- 如何将此数组发布到我的模型,然后在控制器中访问它?
谢谢你的帮助。
感谢德克尔:http ://forums.asp.net/members/Decker%20Dong%20-%20MSFT.aspx
以下是它的工作原理:
在这里使用表单集合...
在 [HttpPost]…</p>
私人无效更新(FormCollection formCollection,int id)
for (int sc = 0; sc < theSelectedCourses.Count(); sc++) { var registration = new Enrollment(); 注册.CourseID = Convert.ToInt32(theSelectedCourses[sc]); 注册.StudentID = id; 注册.listOfDays = formCollection["searchString"] ;//将此绑定为字符串,而不是列表或数组。
然后在 [HttpGet]…</p>
私人无效PopulateAssignedenrolledData(学生学生,int id){
var dayList = from e in db.Enrollments where e.StudentID == id select e;
var days = dayList.ToList(); if (days.Count > 0) { string dl = days.FirstOrDefault().listOfDays; string[] listofdays = dl.Split(','); ViewBag.classDay = listofdays.ToList(); }