我试图让实体框架以某种方式为特殊的一对一关系创建表。
假设我有这组类:
public class Parent
{
public int ID { get; set; }
public string Title { get; set; }
public Child XYZ { get; set; }
}
public class Child
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string Property3 { get; set; }
}
类的XYZ属性Parent可以设置为 的实例Child。我希望 EF 为这两个类中的每一个创建一个表,并且Child对象表应该简单地具有一个外键列,最好命名为“ParentID”,以保持与Parent对象的关系。
我不想在 Parent 表中出现“ChildID”列,也不想在Child类中添加 ID 或 ParentID 属性。
目前,Child对象的属性被创建为父表中的列,如果 XYZ 属性未设置为Child类的实例,我会得到一个异常,即它不能为空。
我正在尝试使用 DbModelBuilder 和 OnModelCreating 事件来做到这一点。IsOptional方法仅适用于简单类型。
有什么建议么?EF甚至可以做到这一点吗?