如何使用Linq写入数据库

时间:2012-10-19 16:21:01

标签: sql sql-server linq linq-to-entities

我有一个名为Fruits的表的数据库。在表格中,我有3列:NameDateRemove

现在我插入了3行,其值为

Apple----20/10/12----N
Mango----21/12/12----Y
Banana--- 15/07/12----N
Grapes----18/12/12----Y

我想删除标记为'Y的2行。

我想在c#代码中使用Linq。最初我使用连接字符串建立与DB的连接。我将获得设备上下文DC,并且我将复制所有行。

现在我将枚举标记为N的行,我将调用remove。

删除后,我会执行:dc.deleteonSubmit<tableName>(var).

在此之后,我应该致电dc.submittsavechages();或者让DB看起来像什么:

Mango----21/12/12----Y
Grapes----18/12/12----Y

如果我在sql查询分析器中查询,我应该得到以上结果。如何在LINQ中执行此操作?

2 个答案:

答案 0 :(得分:1)

试试这个:

Dim dc as new DataClassesDataContext()

Dim deleteFruits = _
    From f In db.Fruits() _
    Where f.Remove _
    Select f

For Each fruit In deleteFruits
    db.Fruits.DeleteOnSubmit(fruit)
Next

Try
    db.SubmitChanges()
Catch ex As Exception
    Console.WriteLine(ex)
    ' Provide for exceptions
End Try

答案 1 :(得分:1)

可以做得更紧凑

db.Fruits.DeleteAllOnSubmit(db.Fruites.Where(f=>f.remove == "Y" )) 

try/db.SubmitChanges()部分保持不变。