"Der Entitätstyp <model - > ist nicht Teil des Modells für den aktuellen Kontext."

Bin ich mit dieser Ausgabe die Aktualisierung meiner Datenbank 1 Spalte in einer Zeit, in asp.net mit der web-api. Ich versuche eine Abfrage SETZEN, aktualisieren Sie einfach einen Wert in der Zeile anstelle von aktualisieren, die ein und setzen den rest auf null. Ich machte ein eigenständiges Modell außerhalb der controller in der update damit ich tun konnte, ein zu einer Zeit. Wenn ich dieses line - db.Entry(user).State = EntityState.Modified; in den regler, wo es erroring. Irgendwelche Tipps, wie kann ich dieses Problem beheben?

Dies ist meine separate ViewModel ich nehme in in die put-Methode:

namespace WebAPI.Models.ViewModels
{
    public class UserViewModel
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    }
}

Dies ist mein controller-Aufruf in der Methode mit dem ViewModel in meine parameter:

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;
            }

Dies ist mein DBContext Datei:

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; }
    }
}

InformationsquelleAutor der Frage Shawn | 2014-03-14

Schreibe einen Kommentar