1

我想实现实体框架的代码优先方法。我有四个实体UserInfo,Client,AdminAccount。我想要的关系为:实体框架POCO关系

  • 每个ClientUserInfo
  • 每个Admin有一个`的UserInfo
  • 每个Account与用户(UserInfo

假设这些东西我写的链接POCO模型。随着我想要的关系,这是正确的吗?我错过了什么?

public class UserInfo 
    { 
     public int UserInfoID { get; set; } 
     public Name Name { get; set; } 
     public Address Address { get; set; } 
     public Contact Contact { get; set; } 
    } 

public class Admin 
    { 
     public int AdminID { get; set; } 
     public int UserInfoID { get; set; } 
     [ForeignKey("UserInfoID")] 
     public virtual UserInfo UserInfo { get; set; } 
    } 

public class Client 
    { 
     public int ClientID { get; set; } 
     public CompanyDetails CompanyDetails { get; set; } 
     public int UserInfoID { get; set; } 
     [ForeignKey("UserInfoID")] 
     public virtual UserInfo UserInfo { get; set; } 
    } 

public class Account 
    { 
     public int AccountID { get; set; } 
     [Required, Column("Balance"), Display(Name = "Account Balance")] 
     public double Balance { get; set; } 
     public int UserInfoID { get; set; } 
     [ForeignKey("UserInfoID")] 
     public virtual UserInfo UserInfo { get; set; } 
    } 
+0

为什么你不只是试试看? – Dabblernl 2012-07-19 19:10:16

+0

我做到了。我想确保我正朝着正确的方向前进。 – nebula 2012-07-20 00:38:15

回答

2

你有什么出现根据您的要求与代码首先配置您的实体时,但我个人更喜欢实体框架模型构造器是正确的。

使用模型生成器意味着您在POCO实体上没有任何属性,这反过来意味着您不需要EF引用来使用实体。

在我的文章到这里看看关于如何使用模型构建器的一些详细信息:http://blog.staticvoid.co.nz/2012/07/entity-framework-navigation-property.html

+0

对于博客文章+1。容易明白。 – nebula 2012-07-21 08:49:16

+0

谢谢:)真心渴望听到任何建议以使其更容易 – 2012-07-21 13:11:30

+0

您可以使用模型构建器将主键和外键实现与导航属性一起添加。无论如何,你的帖子对于像我这样的初学者来说非常清晰易读:) – nebula 2012-07-21 14:53:17