У меня возникла проблема с обновлением колонки 1 базы данных за один раз в asp.net с помощью web api. Я пытаюсь запросить PUT, чтобы просто обновить одно значение в строке, вместо того, чтобы обновлять его, и установить остальное на null. Я сделал отдельную модель за пределами контроллера, чтобы принять обновление, чтобы я мог делать по одному. Когда я нахожу эту строку db.Entry(user).State = EntityState.Modified;
в контроллере, где это ошибка. Любой совет, как я могу это исправить?
Это мой отдельный ViewModel, который я использую в методе put:
namespace WebAPI.Models.ViewModels
{
public class UserViewModel
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
Это мой контроллер, вызывающий метод с ViewModel в моем параметре:
public HttpResponseMessage PutUser(int id, UserViewModel user)
{
HttpResponseMessage response;
if (db.User.IsInRole("Admin"))
{
try
{
db.Entry(user).State = EntityState.Modified;
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!UserExists(id))
{
response = new HttpResponseMessage(HttpStatusCode.NotFound);
return response;
}
else
{
throw;
}
}
response = new HttpResponseMessage(HttpStatusCode.NoContent);
return response;
}
Это мой файл DBContext
:
public partial class Entities : DbContext
{
public Entities()
: base("name=Entities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<User> Users { get; set; }
}
}