【发布时间】:2020-11-03 21:01:15
【问题描述】:
我想在我的 EF 实体中使用一个类并将属性的值保存到 DB。
我有一个这样的示例类:
public class MyClass
{
public string MyProperty { get; set; }
}
还有一个像这样的实体框架实体:
public class MyEntity
{
public MyClass Item { get; set; }
...
}
我的上下文是这样的:
public class MyDbContext : DbContext
{
public MyDbContext()
: base(connectionStringName)
{
}
public virtual DbSet<MyEntity> MyEntity { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<MyEntity>()
.Property(x => x.Item.MyProperty)
.HasColumnName("NewColumnName");
}
}
}
以上所有内容在 Entity Framework 6 中都有效,但相同的代码在 EF 核心中不起作用。
我在尝试创建迁移时收到以下错误:
表达式“x => x.Item.MyProperty”不是有效属性 表达。该表达式应该表示一个简单的属性访问: 't => t.MyProperty'。 (参数'propertyAccessExpression')
那么,我在 Entity Framework Core 中尝试做的事情是否可行,或者我是否坚持使用 EF6?
【问题讨论】:
-
MyEntity和MyClass之间的关系是如何配置的?
标签: c# entity-framework entity-framework-core