为什么 EF Core 将我未修饰的 class 视为一个实体?
Why is EF Core treating my non-decorated class as an entity?
我有一个简单的class如下:
public class NonEntity
{
// some properties
}
我收到指向 Entity Framework 核心认为这是一个 POCO(实体)class 的运行时错误。例如:
The entity type 'NonEntity' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in 'OnModelCreating'
但是,在我的数据库上下文中没有 DbSet<NonEntity>
属性,并且 NonEntity
class 上没有任何属性可以建议除此以外的任何内容标准 class 与我的数据库无关。什么会导致 EF Core 以不同的方式思考?
原来发生这种情况是因为我在另一个 class 中引用了 class, 是 一个实体:
public class MyEntity
{
public int Id { get; set; }
public List<NonEntity> NonEntities
{
get
{
// some logic that converts entities to non-entities and returns them
}
}
}
将 NotMapped
属性添加到 属性 定义解决了它:
[NotMapped]
public List<NonEntity> NonEntities
默认情况下,EF 会尝试将属性映射到数据库。 NotMapped
属性覆盖此行为。
我有一个简单的class如下:
public class NonEntity
{
// some properties
}
我收到指向 Entity Framework 核心认为这是一个 POCO(实体)class 的运行时错误。例如:
The entity type 'NonEntity' requires a primary key to be defined. If you intended to use a keyless entity type, call 'HasNoKey' in 'OnModelCreating'
但是,在我的数据库上下文中没有 DbSet<NonEntity>
属性,并且 NonEntity
class 上没有任何属性可以建议除此以外的任何内容标准 class 与我的数据库无关。什么会导致 EF Core 以不同的方式思考?
原来发生这种情况是因为我在另一个 class 中引用了 class, 是 一个实体:
public class MyEntity
{
public int Id { get; set; }
public List<NonEntity> NonEntities
{
get
{
// some logic that converts entities to non-entities and returns them
}
}
}
将 NotMapped
属性添加到 属性 定义解决了它:
[NotMapped]
public List<NonEntity> NonEntities
默认情况下,EF 会尝试将属性映射到数据库。 NotMapped
属性覆盖此行为。