c# - 实体定义外键
问题描述
我有以下类结构,并且正在使用实体代码首先迁移来从这些类创建数据库:
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
课堂做到这一点?
解决方案
推荐阅读
- c++ - 扫描密文文档,猜测密钥,计算分布
- python - 如何在熊猫中创建具有最大功能的列
- javascript - 使每个类的效果单独工作(Javascript)
- java - Java 模块 module-info.java 重复
- flutter - BlocBuilder 构建器函数仅被调用一次
- javascript - 使用 Ajax 在 WordPress 前端上传多个文件
- c - 对齐数据的更快 memcpy
- machine-learning - 随着更多数据可用,您如何改进机器学习模型?
- oracle - 在 oracle 中创建物化视图时出错 - ORA-12052
- regex - Powershell Regex 新电子邮件标准