使用 LINQ 删除 SQL in visual studio
deletion with LINQ to SQL in visual studio
我在 visual studio 中使用 LINQ to SQL 与我的数据库进行交互。现在我添加了添加、更改等方法到我的代码,但我无法删除一行。这是我的删除方法:
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();
您可以使用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();
我在 visual studio 中使用 LINQ to SQL 与我的数据库进行交互。现在我添加了添加、更改等方法到我的代码,但我无法删除一行。这是我的删除方法:
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();
您可以使用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();