1

我有一个相当简单的 WebAPI 项目开始,但还没有走得很远。

我有一个遗留数据库,我正在查找一些数据(它的 SQL Express 2012 R2)。然后我用某些属性填充一个本地类并返回它。

但是,当尝试使用此错误序列化我的简单类时,JSON 序列化程序失败:

从“System.Data.SqlClient.SqlConnection”上的“ServerVersion”获取值时出错。

这是我要序列化的类。BaseEntity 只有一个属性,它是数据库上下文

public class User : BaseEntity
{
    public int Id;
    public string Email;
    public int Strikes;
    public Guid AuthenticationKey;

    public User ()
    {
    }

这是控制器

public User PutAuthenticate(AuthenticationPayload payload)
    {
        if (!ModelState.IsValid)
        {
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState));
        }

        User user;

        try
        {
            user = new User(payload.Email, payload.Password);

            if (user.Strikes >= 3)
            {
                HttpError error = new HttpError("Your account has been locked please contact us to unlock");
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.Unauthorized, error));
            }
        }
        catch (CANotFoundException)
        {
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.Unauthorized));
        }

        return user;

    }
4

1 回答 1

2

正如我在写这篇文章时经常发现的那样,我实际上设法解决了我自己的问题。基类数据连接是公开的,因此它试图序列化数据上下文。我只需要更改它即可受到保护

于 2013-05-27T07:39:30.080 回答