我有以下类结构,我使用实体代码首次迁移从这些类创建数据库:
public class t_ParentClass
{
/// <summary>
/// Unique id
/// </summary>
public int UNID { get; set; }
}
public class t_ChildClass
{
/// <summary>
/// UNID
/// </summary>
public int UNID { get; set; }
/// <summary>
/// Event Id
/// </summary>
public int? ParentId { get; set; }
/// <summary>
/// Review event
/// </summary>
public t_ParentClass Parent { get; set; }
}
此设置已在表t_ChildClass
这一切都很好并且运作良好。
但是,我也使用Linq-to-entities
来查询这些表。
上述设置的问题是我无法执行以下操作:
var parent = context.parent.include(x => x.child);
所以,为了解决这个问题,我可以将我的结构改为:
public class t_ParentClass
{
/// <summary>
/// Unique id
/// </summary>
public int UNID { get; set; }
/// <summary>
/// Child
/// </summary>
public List<t_ChildClass> Child { get; set; }
}
public class t_ChildClass
{
/// <summary>
/// UNID
/// </summary>
public int UNID { get; set; }
/// <summary>
/// Event Id
/// </summary>
public int? ParentId { get; set; }
/// <summary>
/// Review event
/// </summary>
public t_ParentClass Parent { get; set; }
}
这里的问题是迁移现在想要向子表添加一个新列,以表示看作父表的新外键。
所以,我的问题是:
如何让它识别该列已存在于子表中,并将其用作父表和子表之间的链接,而不是创建新列。
我知道我可以接受这种做事方式,但是数据是某些表,删除外键并重新创建是一个问题。
也许我可以通过EntityTypeConfiguration
课程来完成这项工作?