【问题标题】:problem with delete when multiple columns多列时删除的问题
【发布时间】:2009-12-02 12:23:22
【问题描述】:

删除此作品时:

orderitems.Delete(x => x.orderitem_sessionid == transkey);

但这不起作用

orderitem.Delete(x => x.orderitem_sessionid == transkey 
                       && x.orderitem_productid == 6);

我没有收到任何错误,但也没有删除任何内容,我有工作代码代替

var DeleteableItems = orderitems.All().where(x => x.orderitem_sessionid == transkey 
                                             && x.orderitem_productid = 6);

foreach(var item in DeleteableItems) item.delete;

尽管上述方法有效,但使用 subsonic 3.0.0.3 和 mysql 数据库的普通删除方法无法正常工作

谢谢

【问题讨论】:

    标签: linq activerecord subsonic subsonic3


    【解决方案1】:

    你试过了吗:

    orderitem.Delete(x => x.orderitem_sessionid == transkey 
                          && x.orderitem_productid == 6);
    

    您版本中的最后一个运算符是赋值而不是比较。

    我的回答涉及一个错字,但在获取生成的 SQL 时,cmets 可能会觉得有用。

    善良,

    【讨论】:

    • 是的,抱歉,extra = 的错误是写帖子时的拼写错误,另一个开发人员在他的机器上遇到了问题,我给了他解决方案,因为我不明白为什么它不会删除,再加上时间是你知道的关键。有什么方法可以输出发送的 sql,所以我检查它是如何翻译的,然后从那里取它....谢谢
    • 如果 SQL Server 是后端,请从 Management Studio 的工具菜单中打开 SQL Profiler 并设置新的跟踪。分析您想要的位并检查您的数据库正在触发哪些查询。我发现编写一个可以设置调试点的单元测试非常有用。清除日志,然后进行单元测试。您的 SQL 位于顶部。
    猜你喜欢
    • 1970-01-01
    • 2022-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-29
    • 2019-12-17
    • 2016-07-21
    相关资源
    最近更新 更多