C# 向派生类添加基类值的最佳方法?

C# 向派生类添加基类值的最佳方法?,c#,entity-framework,api,derived-class,C#,Entity Framework,Api,Derived Class,我有一个包含类的引用文件(dll),我将其用作基类: public class Group { public Group(); public int Id { get; set; } public int League_Id { get; set; } public string Name { get; set; } public string Nationality { get; set; } } (请注意,Group类包含大约30个实体,我只显示了

我有一个包含类的引用文件(dll),我将其用作基类:

public class Group
{
    public Group();

    public int Id { get; set; }
    public int League_Id { get; set; }
    public string Name { get; set; }
    public string Nationality { get; set; }
}
(请注意,Group类包含大约30个实体,我只显示了一些)

因为我使用实体框架,所以ID需要是唯一的。我从一个API调用中获得这些数据,并注意到ID不是唯一的,我添加了自己的类

public class modGroup : APICall.Group
{
    public modGroup()
    {
        modID = 0;
    }

    [Key]
    public int modID { get; set; }
}
此设置有效,EF正在创建数据库

我要做的是从API(结构为Group类)获取数据,创建一个新的modGroup(),并从API调用中设置所有数据,而不引用每个单独的对象

我想做的是在不设置每个实体的情况下传输数据

List<APICall.Group> groupData= _ApiRequester.GetGroup();
using (var a = new databaseModel())
{
    foreach (APICall.Group x in groupData)
    {
        var modGroup = new Models.modGroup();
        modGroup.modID = 0;
        // fill modgroup with rest of variables without doing:
        // modGroup.League_iD = a.League_iD;
        // modGroup.Name = a.Name;
        // etc
    }
}
List groupData=\u ApiRequester.GetGroup();
使用(var a=newdatabasemodel())
{
foreach(groupData中的APICall.Group x)
{
var modGroup=new Models.modGroup();
modGroup.modID=0;
//使用其余变量填充modgroup,但不执行以下操作:
//modGroup.League\u iD=a.League\u iD;
//modGroup.Name=a.Name;
//等
}
}
我会在一次调用中将这两个类映射到一起。这种情况就是它设计的目的。您需要做的就是创建一个映射配置,然后映射这两个类。这是一个非常简单但功能强大的工具。e、 g.类似这样的情况:

var config = new MapperConfiguration(cfg => cfg.CreateMap<APICall.Group, modGroup>()
.ForMember(dest => dest.modID, s=>s.MapFrom(s=>s.Id));
// etc create more mappings here
);

var mapper = config.CreateMapper();
List<modGroup> modGroupList = mapper.Map<List<modGroup>>(groupData);
var config=new-MapperConfiguration(cfg=>cfg.CreateMap()
.ForMember(dest=>dest.modID,s=>s.MapFrom(s=>s.Id));
//请在此处创建更多映射
);
var mapper=config.CreateMapper();
List modGroupList=mapper.Map(groupData);