如何使用 LINQ 更新数据库? Linq-to-SQL
How to update Database with LINQ? Linq-to-SQL
我正在尝试通过 Linq-to-SQL 更新数据库。
我有一个名为 Staff_Time_TBL
的 table,它有 9 列。我正在尝试更新可能多行的单列记录。
我的 LINQ 查询如下。它从指定日期到另一个指定日期的列 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();
然后我将使用 foreach
循环遍历集合并更新数据库,
foreach (var item in getList)
{
item.Section_Data = "myValue";
}
Sql.SubmitChanges();
问题是下面这个实体Section_Data
不存在。
item.Section_Data
所以,我在想我没有正确地组合 LINQ 来访问实体?如何修改查询以便我可以访问实体以更新数据库?
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 类型的数据,因为你正在 selecting Section_Data,当你 运行 a for each on that 时,你会只能访问与之相关的属性,因此只需从查询中删除 select 部分。
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();
试试这个:
var getList = Sql.Staff_Time_TBLs.Where(
staff => staff.Staff_No == staffNo &&
staff.Date_Data >= dateFrom &&
staff.Date_Data <= dateTo)
.ToList();
我正在尝试通过 Linq-to-SQL 更新数据库。
我有一个名为 Staff_Time_TBL
的 table,它有 9 列。我正在尝试更新可能多行的单列记录。
我的 LINQ 查询如下。它从指定日期到另一个指定日期的列 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();
然后我将使用 foreach
循环遍历集合并更新数据库,
foreach (var item in getList)
{
item.Section_Data = "myValue";
}
Sql.SubmitChanges();
问题是下面这个实体Section_Data
不存在。
item.Section_Data
所以,我在想我没有正确地组合 LINQ 来访问实体?如何修改查询以便我可以访问实体以更新数据库?
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 类型的数据,因为你正在 selecting Section_Data,当你 运行 a for each on that 时,你会只能访问与之相关的属性,因此只需从查询中删除 select 部分。
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();
试试这个:
var getList = Sql.Staff_Time_TBLs.Where(
staff => staff.Staff_No == staffNo &&
staff.Date_Data >= dateFrom &&
staff.Date_Data <= dateTo)
.ToList();