客户类继承自实体,其中" Id"物业是可用的。但每当我向控制器发布一个JSON对象时,所有属性除了" Id"将启动。 "标识"总是0
你有什么想法有什么不对吗?
public abstract class Entity<TId> : IEquatable<Entity<TId>>
{
public TId Id { get; protected set; }
}
public class Customer : Entity<int>
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
//Controller
public void Post([FromBody] Customer customer)
{
if (customer.Id > 0)
_customeRepository.Update(customer);
_customeRepository.Insert(customer);
}
答案 0 :(得分:0)
Id
属性没有公共setter,这就是为什么在数据绑定期间无法设置它的原因。使setter公开并正确设置其值:
public abstract class Entity<TId> : IEquatable<Entity<TId>>
{
public TId Id { get; set; }
}
注意:在这种情况下不需要FromBody
属性,因为默认情况下Customer
类型的参数将从请求正文绑定。