在LINQ中删除时出错500错误

时间:2009-04-29 09:05:04

标签: linq

执行下面的代码时,我收到HTTP 500内部服务器错误。

public bool DeleteData(int dataId, string uploaderName)
{
    using (DataClassesDataContext db = new DataClassesDataContext())
    {
        DataInfo d = db.DataInfos.Where(c => c.DataId == dataId).Single();
        db.DataInfos.DeleteOnSubmit(d);
        db.SubmitChanges();
    }        
    return true;
}

这会获取“d”中的值,但在执行db.SubmitChanges();时,我看到500错误。原因是什么? ID列是主键,也是Identity。

此外,我想知道如何在LINQ中实现“和”,如下所示:

DataInfo d = db.DataInfos.Where(c => c.DataId == DataId AND 
                                c.UploaderName==uploaderName).Single();

1 个答案:

答案 0 :(得分:2)

实现“和”很容易 - 毕竟这是一个C#表达式:

DataInfo d = db.DataInfos.Where(c => c.DataId == DataId &&
                                c.UploaderName == uploaderName).Single();

至于500错误,这几乎可以肯定是由于异常,但如果没有异常的细节,很难知道什么是错的。在尝试修复LINQ错误之前,应确保记录导致请求失败的任何异常。这将帮助您解决未来的错误。登录到位后,您应该能够告诉我们异常是什么,此时我们可以帮助您解决问题。