实体框架6:将复杂类型映射到多个列

时间:2019-01-29 11:03:29

标签: entity-framework

我对Entity Framework(6,不是Core)有问题。我已经尝试了几件事并在Google周围搜索,但是我无法弄清楚,所以我在这里问。

那是我的数据库方案:

CREATE TABLE MyItem
(
    [Id] int IDENTITY(1,1) NOT NULL,
    [Name] varchar(100) NOT NULL,
    [Start] date NOT NULL,
    [End] date NOT NULL
)

这些是我的课程:

public class MyItem
{
    public int Id { get; set; }
    public string Name { get; set; }
    public MyTimespan IsValidTimespan { get; set; }
}

public class MyTimespan
{
    public DateTime Start { get; set; }
    public DateTime End { get; set; }
}

我想地图

  • 从“ MyItem.IsValidTimespan.Start”到“开始”列的值
  • 从“ MyItem.IsValidTimespan.Ende”到“ Ende”列的值

我已经尝试过使用MyTimespan类的属性(“ ComplexType”和“ Column”属性)进行不同的操作,并且还对modelBuilder进行了一些修改,没有任何作用。

如何使它正常工作?

感谢您和最诚挚的问候, 亚历克斯

1 个答案:

答案 0 :(得分:0)

好吧,我明白了。我上面发布的代码不是100%正确:MyTimespan的属性没有设置器。在“ MyTimespan”中进行了以下更改:

  1. 添加我的问题中提到的注释
  2. 向属性添加私有设置器
  3. 添加私有默认构造函数