LINQ查询未返回正确的结果

时间:2013-12-15 23:41:26

标签: c# linq

我有一个在POST和PUT上调用的方法。该方法更新当前用户的用户名。查询如下所示:

public override void Save() 
{
    if (SessionManager.CurrentSession.Query<User>()
                                     .Any(u => u.Username == this.Username))
        throw new DuplicateNameException("Username already exists");
    ...

这适用于POST,每次我尝试使用db中存在的用户名创建新用户时,都会抛出DuplicateNameException。但是,在PUT上,当我尝试将现有用户名更改为已存在的用户名时,此异常永远不会被触发。我不知道为什么POST和PUT之间的查询会有所不同。有什么想法吗?提前谢谢。

2 个答案:

答案 0 :(得分:2)

奇。您已确认您希望执行的代码实际上正在执行吗?就像在,PUT调用不会导致跳过这个或者其他一些方法被调用?并且PUT调用IS实际上是在命中服务器吗?进行PUT调用时,“用户名”实际上是否正确填充?当进行PUT调用时,“CurrentSession”属性和“Query”调用是否实际上绑定到它们应该是什么并返回您期望的数据(例如,它可能返回空列表,因为某些连接或其他尚未设置在这种情况下)?

答案 1 :(得分:0)

您是从表单获取用户名吗?我认为PUT没有正确传递用户名。