0

使用 EF 6.1.2。代码第一。我有这些模型:

public class Automobile
{
    public int Id { get; set; }
    public string Make { get; set; }
    public string Model { get; set; }
    public string Vin { get; set; }
    public int Year { get; set; }
    public Engine EngineType { get; set; }
    public Transmission TransmissionType { get; set; }
    public DriveTrain DriveTrainType { get; set; }
    public ICollection<Accessory> Accessories { get; set; }
}

public class Transmission
{
    public string Name { get; set; }
    public string Description { get; set; }
    public int Speeds { get; set; }
    public bool IsAutomatic { get; set; }
}

public class Accessory
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public int AutomobileId { get; set; }
}

public class DriveTrain
{
    public bool IsAwd { get; set; }
    public bool IsHeavyDuty { get; set; }
    public string Name { get; set; }
}

public class Engine
{
    public int Id { get; set; }
    public string  Size { get; set; }
    public string Brand { get; set; }
    public int cylinders { get; set; }
    public int AutomobileId { get; set; }
    public ICollection<Automobile> AutoMobiles { get; set; } 
}

我的存储目标是使用实体拆分,最终只有 2 个表:汽车配件。因为Transmission实体和DriveTrain实体都没有主键,所以 EF6 会自动将这些表合并到我的主表汽车中进行存储。这是很好的默认行为,我喜欢它。我的问题是在解决引擎实体时出现的。请注意,它有一个在概念上与汽车主键不同的主键。已经使用了一些流畅的 API 配置,我还没有能够成功地将Engine实体合并到汽车中存储方面的实体。我发现这篇 MSDN 文章: http: //msdn.microsoft.com/en-us/data/JJ591617.aspx#2.8 但这个例子需要相同的共享主键。这两个实体有不同的主键。

在保持上述确切模式的同时实现我的目标的最佳方法是什么?

4

0 回答 0