2016-08-20 18 views
2

私はLinq-to-SQL経由でデータベースを更新しようとしています。LINQでデータベースを更新するには? Linq-to-SQL

私はStaff_Time_TBLという名前のテーブルを9列あります。私は潜在的に複数の行に単一の列のレコードを更新しようとしています。

私のLINQクエリは次のとおりです。特定の日付から別の指定された日付まで、そして従業員番号1つから、列Section_Dataのデータを取得します。

DatabaseDataContext Sql = new DatabaseDataContext(ConnectionString); 

var getList = Sql.Staff_Time_TBLs.Where(
       staff => staff.Staff_No == staffNo && 
       staff.Date_Data >= dateFrom && 
       staff.Date_Data <= dateTo) 
       .Select(staff => staff.Section_Data).ToList(); 

私は、問題は、これは以下、エンティティSection_Dataが存在しないということである

foreach (var item in getList) 
       {      
        item.Section_Data = "myValue"; 
       } 
     Sql.SubmitChanges(); 

、コレクションものの反復処理し、データベースを更新するためにforeachループを使用するつもりです。

item.Section_Data 

私はエンティティにアクセスできるようにLINQを正しく組み立てていないと考えていますか?エンティティにアクセスしてデータベースを更新できるようにクエリを修正するにはどうすればよいですか?あなたがSection_Dataを選択しているので、

+0

私は推測しているが、あなたは 'staff.Section_Data'を選択するので、それはあなたがして' item.Section_Data'を行うことができない可能性があります。おそらくコードの 'Select(...)'部分を削除するだけでしょうか? – DavidG

+0

@DavidG、ありがとうございました。助けてくれてありがとう。 – KyloRen

答えて

1
​​

このクエリは、あなたのタイプSection_Dataのデータだけを与えるだろう、とあなたはその上の各実行したとき、あなたはそののみに関連する属性にアクセスすることができます、したがって、単に削除しますクエリから部品を選択します。

var getList = Sql.Staff_Time_TBLs.Where(
       staff => staff.Staff_No == staffNo && 
       staff.Date_Data >= dateFrom && 
       staff.Date_Data <= dateTo) 
       .ToList(); 

これで、その内部の属性にアクセスできます。

foreach (var item in getList) 
{      
    item.Section_Data = "myValue"; 
} 
Sql.SubmitChanges(); 
+0

それはそれをしました。おかげさまで、私はこの数日間最後にやっています。 – KyloRen

0

トライライト・コード:

enter code here 
var getList = Sql.Staff_Time_TBLs.Where(
      staff => staff.Staff_No == staffNo && 
      staff.Date_Data >= dateFrom && 
      staff.Date_Data <= dateTo) 
      .ToList(); 
関連する問題