1

LINQ to SQL を使用しています。「tblCourse」という名前のテーブルがあります。いくつかの基準に基づいてこのテーブルからいくつかの行を選択し、選択した行を同じテーブルに新しいレコードとして挿入します。誰かが投稿、リンク、または方向性を提案できますか?

public IQueryable<tblCourseNeededHours> CloneAllCourseNeededHoursInDepartmentInSemester(int departmentId, string semester)
{
return from allCourses in _db.tblCourseNeededHours orderby allCourses.tblCourse.CourseName
where allCourses.tblCourse.tblInstitute.DepartmentID == departmentId && allCourses.Semester
== semester select allCourses;

var thisTable = from t in _db.tblCourseNeededHours where
t.tblCourse.tblInstitute.DepartmentID == departmentId && t.Semester == semester

//select everything except ID
select _db.tblCourseNeededHours {  Semester = ?, NeedHoursPerWeek = ?, AssignToInstitute=? 
(I want it null for new record), Freezed=? (I want it null for new record)    
}; 
_db.tblCourseNeededHours.InsertAllOnsubmit(thisTable);
_db.SubmitChanges(); 

今私が使用するとき

select _db.tblCourseNeededHours {  Semester = ?, NeedHoursPerWeek = ?, AssignToInstitute=? (I want it null), Freezed=? (I want it null)    
};

? 「ここに何を入力すればよいか、こことこの行でエラーが発生しています」と述べてください

_db.tblCourseNeededHours.InsertAllOnsubmit(thisTable);
4

1 に答える 1

0

あなたのデータベーススキーマについてはわかりませんが、このようなものがうまくいくはずです。

var oldItems= (from p on db.tblCourses where p.InstructorId=43 select p).ToList();
if(oldItems!=null)
{
  foreach(var item in oldItems)
  {
    tblCourse objNew=new tblCourse();
    objNew.Instructor="John";  
   // update someproperty values from old row if you need        
    objNew.Credits=item.Credits+2;
    db.tblCourses.Add(objNew);
  }
  db.SubmitChanges();
}

db があなたのデータコンテキストであると仮定します

于 2012-04-08T18:57:46.503 に答える