我不能做POST:值不能为空。参数名称:实体

时间:2018-02-08 00:04:59

标签: c# sql-server entity-framework

我正在SQL Server中的数据库上使用Entity Framework进行WebAPI 2。我有两个表,一个名为Usuarios,其id为主键,idTipoUsuario为表的外键。

我使用助手连接到数据库生成我的实体数据模型,如下所示:

public partial class Usuarios
{
    public int idUsuario { get; set; }
    public string nombre { get; set; }
    public string apellido_p { get; set; }
    public string apellido_m { get; set; }
    public string usuario { get; set; }
    public string email { get; set; }
    public string contrasena { get; set; }
    public Nullable<System.DateTime> dia_creacion { get; set; }
    public Nullable<System.DateTime> ultima_sesion { get; set; }
    public Nullable<int> idTipoUsuario { get; set; }

    public virtual TipoUsuario TipoUsuario { get; set; }
}

public partial class TipoUsuario
{
    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
    public TipoUsuario()
    {
        this.Usuarios = new HashSet<Usuarios>();
    }

    public int idTipoUsuario { get; set; }
    public string Tipo { get; set; }

    [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
    public virtual ICollection<Usuarios> Usuarios { get; set; }
}

在我的UsuariosController中,我添加了以下代码行:

 public class UsuariosController : ApiController
{
    private TestUsersEntities db = new TestUsersEntities();
    //GET api/Usuarios
    public IEnumerable<Usuarios> Get() {

        return db.Usuarios.ToList();
    }

    //GET api/Usuarios?idUsuario=1
    public Usuarios Get(int idUsuario) {
        return db.Usuarios.FirstOrDefault(e => e.idUsuario == idUsuario);
    }

    //POST 
    public void Post([FromBody]Usuarios usuarios) {
        db.Usuarios.Add(usuarios);
        db.SaveChanges();
    }
}

GET工作完美,但是当我想使用Postman进行POST时,它会抛出错误:值不能为null。参数名称:entity

在Postman中,我将脚本放在Test部分中,如下所示:(我对此地址执行POST:http:// localhost:53799 / api / Users)

{
"nombre":"Isaias",
"apellido_p":"Orozco",
"apellido_m":"Toledo",
"usuario":"isatol",
"email": "isatol@gmail.com",
"contrasena":"isa",
"dia_creacion": null,
"ultima_sesion": null,
"idTipoUsuario": 2

}

然后用户实体收到空。

感谢您的帮助:)

0 个答案:

没有答案