首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF CTP4生成的表中缺少列

EF CTP4生成的表中缺少列
EN

Stack Overflow用户
提问于 2010-11-27 04:02:26
回答 1查看 223关注 0票数 1

我有个问题,我好像就是搞不清楚。假设我的域中定义了两个实体: Person和Document。以下是文档的定义:

代码语言:javascript
复制
public class Document
{
    public int Id { get; set; }

    [Required]
    [StringLength(255)]
    public string Title { get; set; }
    public DateTime Date { get; set; }

    public virtual Person Owner{ get; set; }
    public virtual Person AssignedTo { get; set; }
}

现在,当EF CTP4在初始化时创建SQL表时,只有一个字段映射到Person.Id为Owner_id。无论我怎么尝试,AssignedTo的字段都不会被创建。

有什么办法可以解决这个问题吗?

致以敬意,

avsomeren

EN

回答 1

Stack Overflow用户

发布于 2010-11-27 05:14:03

您的代码完美地为我在数据库中创建了所需的模式:

如果你没有在你的数据库中得到这个模式,那么我的猜测是你的其他对象模型有些地方不对劲。你能发布你的完整对象模型吗?

另一种解决方案:

虽然您当前的文档类将为您提供所需的结果,但您仍然可以利用并显式指定导航属性的FK:

代码语言:javascript
复制
public class Document
{
    public int Id { get; set; }
    [Required][StringLength(255)]
    public string Title { get; set; }
    public DateTime Date { get; set; }

    public int OwnerID { get; set; }
    public int AssignedToID { get; set; }

    public virtual Person Owner { get; set; }
    public virtual Person AssignedTo { get; set; }

}

Code First现在将推断任何名为的属性(例如OwnerID),具有与主键(int)相同的数据类型,表示关系的外键。

这本质上导致了相同的DB模式,加上文档对象上的FK以及导航属性,这为您提供了使用模型的终极灵活性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4288239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档