gpt4 book ai didi

c# - InvalidOperationException : The entity type was not found. 确保实体类型已经添加到模型中

转载 作者:行者123 更新时间:2023-12-05 05:09:11 35 4
gpt4 key购买 nike

所以我在 Entity Framework Core 中使用 npgsql 作为我的提供者来做这个项目。有一个 Case 类,它是我的解决方案的主要类。对于一对多关系,还有 CaseCustomFieldValue 类。这是他们的代码:

public class Case
{
public int CaseId { get; set; }
public List<CaseCustomFieldValue> CaseCustomFieldValues { get; set; }
}

public class CaseCustomFieldValue
{
public int CaseCustomFieldValueId { get; set; }
public string Value { get; set; }
public int CaseId { get; set; }
public virtual Case Case { get; set; }

}

想法是 CaseCustomFieldValue 将与案例一起发布/修改/删除,但是当我尝试更新 CaseCustomFieldValue 的值时它不会改变。所以我将其添加到我的 PUT 方法中:

_context.Entry(@case.CaseCustomFieldValues).State = EntityState.Modified;

结果上面一行失败并出现错误:

InvalidOperationException: The entity type 'List<CaseCustomFieldValue>' was not found. Ensure that the entity type has been added to the model.

我想我做了 DbContext 类中需要的一切:

        modelBuilder.Entity<Case>()
.HasMany(a => a.CaseCustomFieldValues);
modelBuilder.Entity<Case>().ToTable("Cases");
modelBuilder.Entity<CaseCustomFieldValue().ToTable("CaseCustomFieldValues");
public DbSet<Case> Cases { get; set; }
public DbSet<CaseCustomFieldValue> CaseCustomFieldValues { get; set; }

我删除了数据库并通过数据库更新重新创建了它,但它没有帮助。

最佳答案

我在使用不正确的方法开始跟踪模型时遇到了这个问题。对于我的模型列表,我使用 AddAsync 而不是 AddRangeAsync。

关于c# - InvalidOperationException : The entity type <typename> was not found. 确保实体类型已经添加到模型中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57775003/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com