首先是实体框架代码 - 使用List<>映射类多个表的另一个类?

时间:2010-12-08 15:36:57

标签: entity-framework-4 code-first

我正在评估EF4并且有一个非常基本的问题......我想,我似乎无法找到答案..

采用以下示例:

public class Question
{
  public string question {get;set;}
  public string answer {get; set;}
}

public class Person
{
  public string Id {get; set;}
  public string Name {get; set;}
  public List<Question> Questions {get; set;}
}

然后我在数据库中有以下表格

Person
(
 id,
 name
)

Question
(
 id,
 personId,
 question,
 answer,
)

我可以先使用EF4代码将Person类映射到两个表,还是首先重构我的POCO,所以问题类包含id和personId - 这不是我想做的事。 / p>

我可以在OnModelCreating中添加一些东西来映射类,因为我需要映射它吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,这就是我现在所做的 - 但它需要我重新构建我的问题类......

public class Question
{  
    public int Id {get;set;}   /* New */
    public int PersonId {get;set;}  /* New */
    public string question {get;set;}  
    public string answer {get; set;}

    public virtual Person PersonObj {get;set;}
}

public class Person
{  
    public string Id {get; set;}  
    public string Name {get; set;}  
    public List<Question> Questions {get; set;}
}

并在OnModelCreating事件中添加以下内容

 modelBuilder.Entity<Person>().
                    HasMany(d => d.Questions).
                    WithRequired(c => c.Person).
                    HasForeignKey(c => c.PersonId).
                    WillCascadeOnDelete();

不确定它是完全正确的...但似乎现在正在运作。