不属于当前上下文的模型的实体类型

本文关键字:模型 类型 实体 上下文 不属于 | 更新日期: 2023-09-27 18:33:43

>我正在尝试在客户详细信息表中记录更改。为此,我正在使用EF4

using (realstateEntities context = new realstateEntities())
{
    //Here the model is built**
    cadClientes cliente = new cadClientes();
    cliente.Nome = model.nome;
    ...
    cliente.observacao = model.observacao;
    //Here I am adding the model and saving the changes**
    context.cadClientes.Add(cliente);
    context.SaveChanges();                                
    //Now I am trying to log that operation** (Error is in following line)
     paramsOriginais = LogsController.PrintProperties("cadClientes", context.Entry(context.cadClientes).GetDatabaseValues());
}

我收到此错误:

System.InvalidOperationException: 实体类型 DbSet 1 is not part of the model for the current context.'r'n at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)'r'n at System.Data.Entity.Internal.Linq.InternalSet 1.Initialize((''r' at System.Data.Entity.DbContext.Entry[TEntity](TEntity entity(''r' at 真实状态。Controllers.CadastrosController.clienteAdd(ClientesModel model, FormCollection form( in c:''Users''guilherme''Documents''Visual 演播室 2012''Projects''realstate''realstate''Controllers''CadastrosController.cs:line 303">

我根据微软网站上的此示例编写了代码:

using (var context = new UnicornsContext())
{
    var unicorn = context.Unicorns.Find(1);
    // Make a modification to Name in the tracked entity
    unicorn.Name = "Franky";
    // Make a modification to Name in the database
    context.Database.SqlCommand("update Unicorns set Name = 'Squeaky' where Id = 1");
    // Print out current, original, and database values
    Console.WriteLine("Current values:");
    PrintValues(context.Entry(unicorn).CurrentValues);
    Console.WriteLine("'nOriginal values:");
    PrintValues(context.Entry(unicorn).OriginalValues);
    Console.WriteLine("'nDatabase values:");
    PrintValues(context.Entry(unicorn).GetDatabaseValues());
}

你能帮我吗?谢谢

不属于当前上下文的模型的实体类型

它是由context.Entry(context.cadClientes)引起的。

cadClientescadCliente实体的DbSet。实体 - cadCliente - 是模型的一部分,DbSet不是。我认为你打算做的是

context.Entry(cliente)

这将起作用,它将记录添加的实体。