[英]How to delete a single row from database using linq query?
這是我的桌子ts_grp_perm_mapping
grp_permid grp_id perm_id
22 4 1
23 2 2
這是我刪除行的代碼。 usr_groupId
下面grp_id
上文表。 usr_doctypeids
下面perm_id
上文表。
public int saveNewUser(int usr_groupId, int usr_doctypeids)
{
ts_grp_perm_mapping tm = db.ts_grp_perm_mapping.Find(usr_groupId);
db.ts_grp_perm_mapping.Remove(tm);
int rowiseffected=db.SaveChanges();
return rowiseffected;
}
當我跟蹤時,我的tm
顯示為空,並且錯誤彈出,就像值不能為空。 所以我要去哪里錯了?
如果grp_id是主鍵
public int saveNewUser(int usr_groupId, int usr_doctypeids)
{
ts_grp_perm_mapping tm = db.ts_grp_perm_mapping.SingleOrDefault(ts => ts.grp_id == usr_groupId);
if(tm != null)
{
db.ts_grp_perm_mapping.Remove(tm);
int rowiseffected=db.SaveChanges();
return rowiseffected;
}
else
{
return 0;
}
}
如果grp_id不是主鍵
public int saveNewUser(int usr_groupId, int usr_doctypeids)
{
ts_grp_perm_mapping tm = db.ts_grp_perm_mapping.FirstOrDefault(ts => ts.grp_id == usr_groupId);
if(tm != null)
{
db.ts_grp_perm_mapping.Remove(tm);
int rowiseffected=db.SaveChanges();
return rowiseffected;
}
else
{
return 0;
}
}
Find
僅適用於主鍵。 對其他屬性使用Linq Single
或SingleOrDefault
。
public int saveNewUser(int usr_groupId, int usr_doctypeids)
{
ts_grp_perm_mapping tm = db.ts_grp_perm_mapping.SingleOrDefault(ts => ts.grp_id == usr_groupId);
if(tm == null)
throw new Exception($"The grp_id {usr_groupId} was not found");
db.ts_grp_perm_mapping.Remove(tm);
int rowiseffected=db.SaveChanges();
return rowiseffected;
}
並盡可能使您的方法async
並使用
ts_grp_perm_mapping tm = await db.ts_grp_perm_mapping.SingleOrDefaultAsync(ts => ts.grp_id == usr_groupId).ConfigureAwait(false);
//...
int rowiseffected = await db.SaveChangesAsync().ConfigureAwait(false);
嘗試
public int saveNewUser(int usr_groupId, int usr_doctypeids)
{
var tm = db.ts_grp_perm_mapping.Where(a => a.grp_id == usr_groupId);
db.ts_grp_perm_mapping.Remove(tm);
int rowiseffected=db.SaveChanges();
return rowiseffected;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.