实体客户端类型不是当前上下文的模型的一部分

本文关键字:上下文 模型 一部分 客户端 类型 实体 | 更新日期: 2023-09-27 18:35:18

我正在使用EF执行CRUD当前选择记录并将其传递给视图模型。

表名和类名也相同,那么也无法理解为什么即使在调试后也会出现此错误,它会给出相同的错误。

查看模型

namespace SingleVIewCrud.Models
{
public class tblClients
{
    [Key]
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
}

public class VMtblClient
{
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    public  List<tblClients> tblClients { get; set; }
}
}

分贝套装

public virtual DbSet<tblClients> Clients { get; set; }

行动

public ActionResult Home(int? id)
    {
        VMtblClient model = new VMtblClient();
        model.tblClients = db.Clients.ToList();    
        return View(model);
    }

修订后的代码 DbContext 类,

public partial class SampleEntities1 : DbContext
{
    public SampleEntities1()
        : base("name=SampleEntities1")
    {
    }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }
    public virtual DbSet<tblClient> tblClients { get; set; }

    public virtual DbSet<tblClients> tblClient { get; set; }
}

行动

public ActionResult Home(int? id)
    {
        VMtblClients model = new VMtblClients();
        var test = db.tblClient.ToList();    
        return View(model);
    }

实体客户端类型不是当前上下文的模型的一部分

在 SampleEntities1 DbContext 类中,没有"客户端"的定义。所以"数据库。Clients.ToList();" 应该不起作用。你从哪里提到"db",它必须是数据库上下文类,

试试这个代码,

VMtblClient model = new VMtblClient();
using(var context = new SingleVIewCrud.Models.SampleEntities1())
{ 
   model.tblClients = context.tblClient.ToList();
}
return View(model);
相关文章: