【问题标题】:How to use below code in entity framework如何在实体框架中使用以下代码
【发布时间】:2015-04-28 09:14:17
【问题描述】:
delete asp_testtable
where  userid='XYZ' 
and    SL=12
and    userAmount=13

地点:

  • asp_testtable 是表名
  • useridvarchar 类型的列
  • SLbigint 类型的列
  • userAmountdecimal 类型的列

这是我遵循的三个步骤,但没有一个有效

第 1 步:

asp_testtable map = DBContext.asp_testtable.RemoveRange(DBContext.asp_testtable.Where(c => c.userid == tbuserid.Text.Trim() && c.SlNo == Convert.ToInt64(lbSlNo.Text.ToString()) && c.userAmount == Convert.ToInt16(ddluserAmount.SelectedValue.ToString()))).SingleOrDefault();

DBContext.asp_testtable.Remove(map);

第 2 步:

var y = (from x in asp_testtable where x.userid == tbuserid.Text.Trim() && x.SlNo == Convert.ToInt64(lbSlNo.Text) && x.userAmount == Convert.ToInt16(ddluserAmount.SelectedValue) select x.FeeMappingSlNo).First();

DBContext.asp_testtable.RemoveRange(y);

第三步:

feedetail = new asp_testtable()
{
    userid = tbuserid.Text.Trim(),
    SlNo = Convert.ToInt64(lbSlNo.Text),
    userAmount = Convert.ToInt16(ddluserAmount.SelectedValue)
};

DBContext.asp_testtable.Remove(feedetail);

【问题讨论】:

  • 请发布一些代码 - 例如。你试过什么?什么有效,什么无效?至少要付出一些努力来找出问题所在。
  • 这是我尝试过的asp_testtable map = DBContext.asp_testtable.RemoveRange(DBContext.asp_testtable.Where(c => c.userid == tbuserid.Text.Trim() && c.SlNo == Convert.ToInt64(lbSlNo.Text.ToString()) && c.userAmount == Convert.ToInt16(ddluserAmount.SelectedValue.ToString()))).SingleOrDefault();<br/> DBContext.asp_testtable.Remove(map);
  • 这确实需要扩展,我知道您正在尝试将一些 SQL 转换为用于实体框架;但该问题表明缺乏对 EF 和 stackoverflow 要求的思考和知识,请参阅:mattgemmell.com/what-have-you-triedstackoverflow.com/help/how-to-ask,以熟悉社区希望看到问题所遵循的标准。
  • 展示模型也是个好主意。
  • 我建议将其添加到问题中

标签: c# asp.net


【解决方案1】:
context.asp_testtable.Select(item => item.userid == "XYZ" && item.SL = 12 && 
item.userAmount == 13).ToList().ForEach(context.asp_testtable.DeleteObject);
context.SaveChanges();

找到相关项目并使用DeleteObject删除它们

【讨论】:

  • 我的项目不支持DeleteObject
  • 然后使用RemoveRange,并在问题中指定EF
  • 亲爱的 Ofiris,我已经展示了我使用过的所有步骤
【解决方案2】:

试试这个:

string DeleteStatement = "DELETE FROM asp_testtable " + 
    "WHERE userid = 'XYZ' AND SL=12 AND userAmount=13 ";

yourcontext.Database.SqlQuery(DeleteStatement);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-03
    • 1970-01-01
    • 2011-06-28
    相关资源
    最近更新 更多