モデルにリストプロパティを作成しました
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.
質問:
- プロパティがデータベースにないのはなぜだと思いますか?
- この配列を自分のモデルに投稿して、コントローラーでアクセスするにはどうすればよいですか?
助けてくれてありがとう。
Decker に感謝: http://forums.asp.net/members/Decker%20Dong%20-%20MSFT.aspx
仕組みは次のとおりです。
ここでフォーム コレクションを使用しています…
[HttpPost] で…</p>
private void Update (FormCollection formCollection、int id)
for (int sc = 0; sc < theSelectedCourses.Count(); sc++) { var registration = new Enrollment(); registration.CourseID = Convert.ToInt32(theSelectedCourses[sc]); 登録.StudentID = id; registration.listOfDays = formCollection["searchString"] ;//これをリストまたは配列ではなく文字列としてバインドします。
次に [HttpGet] で…</p>
private void PopulateAssignedenrolledData(Student student, int id) {
var dayList = from e in db.Enrollments where e.StudentID == id select e;
var 日 = dayList.ToList(); if (days.Count > 0) { string dl = days.FirstOrDefault().listOfDays; string[] listofdays = dl.Split(','); ViewBag.classDay = listofdays.ToList(); }