我正在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
}
然后用户实体收到空。
感谢您的帮助:)