C# 将值从一个基类的具体化实例传递到另一个基类实例

C# 将值从一个基类的具体化实例传递到另一个基类实例,c#,asp.net-core,entity-framework-core,mapping,C#,Asp.net Core,Entity Framework Core,Mapping,我目前正在努力使viewmodels能够解析从数据库提取到UI的数据,反之亦然,为此,我在两个viewmodels之间进行了大量手动映射 目前,我尝试传递一些确定属性的值,但由于每个attributetype都需要指定一个特定于批次的参数,并且90%的变量在所有情况下都是冗余的,因为属性只有一种类型 因此,我创建了一个占位符基类,它只包含一个Id,每个ATAttribute都有一个Id, 然后,每个特定的属性类型参数将使用此占位符作为基类 例如: public class BooleanView

我目前正在努力使viewmodels能够解析从数据库提取到UI的数据,反之亦然,为此,我在两个viewmodels之间进行了大量手动映射

目前,我尝试传递一些确定属性的值,但由于每个attributetype都需要指定一个特定于批次的参数,并且90%的变量在所有情况下都是冗余的,因为属性只有一种类型

因此,我创建了一个占位符基类,它只包含一个Id,每个ATAttribute都有一个Id, 然后,每个特定的属性类型参数将使用此占位符作为基类

例如:

public class BooleanViewSpecification : AttributeTypeSpecification
{
    public string TrueOptionText { get; set; }

    public string FalseOptionText { get; set; }
}

public class DateTimeTypeViewSpecification : AttributeTypeSpecification
{
    public DateTime EarliestDataTime { get; set; }

    public DateTime LatestDataTime { get; set; }

}
我的属性类只是一个

public class AttributeView
{
    public DataType Type { get; set; }
    public AttributeTypeSpecification AttributeTypeViewSpecification { get; set; }
}
public class Attribute
{
    public DataType Type { get; set; }
    public AttributeTypeSpecification AttributeTypeSpecification { get; set; }
}
我的DB视图模型也是如此

 public class BooleanSpecification : AttributeTypeSpecification
{
    public string TrueOptionText { get; set; }

    public string FalseOptionText { get; set; }
}

public class DateTimeTypeSpecification : AttributeTypeSpecification
{
    public DateTime EarliestDataTime { get; set; }

    public DateTime LatestDataTime { get; set; }

}
我的属性类只是一个

public class AttributeView
{
    public DataType Type { get; set; }
    public AttributeTypeSpecification AttributeTypeViewSpecification { get; set; }
}
public class Attribute
{
    public DataType Type { get; set; }
    public AttributeTypeSpecification AttributeTypeSpecification { get; set; }
}
问题是从一个类映射到另一个类

    public static IEnumerable<AttributeView> MapToViewModel(this IEnumerable<Attribute> attributes)
    {
        return attributes.Select(z => new AttributeView()
        {
             Type = z.Type, 
             AttributeTypeViewSpecification = z.AttributeTypeSpecification 
        });
    }
我唯一收到的是实际的Id,而不是指定的条目