Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在visual studio中使用LINQ到SQL进行删除_C#_.net_Linq_Linq To Sql - Fatal编程技术网

C# 在visual studio中使用LINQ到SQL进行删除

C# 在visual studio中使用LINQ到SQL进行删除,c#,.net,linq,linq-to-sql,C#,.net,Linq,Linq To Sql,我正在VisualStudio中使用LINQtoSQL与我的数据库交互。现在我在代码中添加了添加、更改等方法,但我无法删除行。以下是我的删除方法: public bool removeUser(User toBeRemoved) { try { theDBDataContext db = new theDBDataContext(); UserDB u = new UserDB(); u.username = toBeRemoved

我正在VisualStudio中使用LINQtoSQL与我的数据库交互。现在我在代码中添加了添加、更改等方法,但我无法删除行。以下是我的删除方法:

public bool removeUser(User toBeRemoved)
{
    try
    {
        theDBDataContext db = new theDBDataContext();
        UserDB u = new UserDB();
        u.username = toBeRemoved.userName;
        u.password = toBeRemoved.password;
        u.role = toBeRemoved.role;
        db.UserDBs.DeleteOnSubmit(u);
        db.SubmitChanges();
        return true;
    }
    catch (Exception e)
    {
        Log.writelog("Cannot Access DB");
        return false;
    }
}

删除前必须附加实体:

    theDBDataContext db = new theDBDataContext();
    UserDB u = new UserDB();
    u.username = toBeRemoved.userName;
    u.password = toBeRemoved.password;
    u.role = toBeRemoved.role;
    db.Orders.Attach(u, false);
    db.UserDBs.DeleteOnSubmit(u);
    db.SubmitChanges();

请参阅。

删除前必须附加实体:

    theDBDataContext db = new theDBDataContext();
    UserDB u = new UserDB();
    u.username = toBeRemoved.userName;
    u.password = toBeRemoved.password;
    u.role = toBeRemoved.role;
    db.Orders.Attach(u, false);
    db.UserDBs.DeleteOnSubmit(u);
    db.SubmitChanges();

请参阅。

您可以使用Linq的扩展方法删除记录。

    theDBDataContext db = new theDBDataContext();
     UserDB u = db.UserDBs.Where(u=>(u.username == toBeRemoved.userName & u.password == toBeRemoved.password & u.role==toBeRemoved.role)).FirstOrDefault(); 
     db.UserDBs.DeleteOnSubmit(u);
     db.SubmitChanges();

您可以使用Linq的扩展方法删除记录。

    theDBDataContext db = new theDBDataContext();
     UserDB u = db.UserDBs.Where(u=>(u.username == toBeRemoved.userName & u.password == toBeRemoved.password & u.role==toBeRemoved.role)).FirstOrDefault(); 
     db.UserDBs.DeleteOnSubmit(u);
     db.SubmitChanges();

可以提供函数“DeleteOnSubmit(u)”吗?可以提供函数“DeleteOnSubmit(u)”吗?还可以从db中选择实体。@CihanYakar,这意味着不需要第二次查询。@DavidG完全适合此场景。但是,当您通过属性启用并发检查,并且UserDB类具有除用户名和密码以外的任何属性时,此方法将不会删除任何内容。您也可以从db中选择实体。@CihanYakar,这意味着不需要第二次查询。@DavidG完全适合此场景。但是,当您通过属性启用并发检查,并且当UserDB类具有除用户名和密码之外的任何属性时,此方法将不会删除任何内容。