cap*_*aig 3 datagridview crud linq-to-sql winforms
我有一个简单的winforms应用程序,我用linq-to-sql连接到我的数据库.
我直接从数据库生成了类,我有一个DataAccess类,它包装了我的datacontext,可以给我任何我需要的东西.
我有一个视图,使用对象数据源来填充DataGridView和一组相关的文本字段等...为我的实体(让我们称之为EmployeeView)
视图加载所有现有行,当我单击网格时,字段会相应更新.
如果我更改字段,更改将在记录更改后保留,但我不确定如何通过数据访问层保存更改.如何检测哪些记录是脏的并需要保存?我如何保存它们?添加新记录的最佳方法是什么?删除记录?
我可以在网上找到很多资源,但没有我需要的那些例子.任何人都可以帮助我解决一些基本模式,或者指向一个好地方吗?
我相信,使用LINQ-to-SQL类的最基本方法是实例化它们的列表(例如,让我们使用Employee)来包含您希望(可能)编辑的Employees.当这些Employee对象的属性发生更改时,对象会自动"弄脏",并且对DataContext.SubmitChanges()的调用将保留它们.
List<Employee> employees = (from e in dataContext.Employees where e.Salary > 50000 select e).toList();
foreach(var employee in employees)
{
employee.CanAffordToyotaPrius = true;
}
dataContext.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
如果您正在包装DataContext并且仅使用DataGridView更改包装器对象的属性,则需要某种方法将这些更改分解为您在选择数据时使用的基础LINQ-to-SQL对象.例如,您可以使用包装器属性上的setter来设置底层LtS对象的属性.