【发布时间】:2012-01-19 11:14:25
【问题描述】:
我正在尝试将一个大表分成多个离散类型。
它适用于主要类型和子类型,但在我使用多种类型时不起作用。我收到一个错误
实体类型“CampaginFeedback”和“CampaignSurvey”不能共享表“Campaign”,因为它们不在同一类型层次结构中 或者没有有效的一对一外键关系 匹配它们之间的主键。
这是我的课程的简化版本:
public class Campaign {
[Key]
public int CampaignId {get;set;}
public string Name {get;set;}
public virtual CampaignSurvey Survey {get;set;}
public virtual CampaignFeedback Feedback {get;set;}
}
public class CampaignSurvey {
[Key]
public int CampaignId {get;set;}
public string Question {get;set;}
public string Answer {get;set;}
}
public class CampaignFeedback {
[Key]
public int CampaignId {get;set;}
public string Feedback {get;set;}
}
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
modelBuilder.Entity<Campaign>().HasRequired(c => c.Survey).WithRequiredPrincipal();
modelBuilder.Entity<Campaign>().HasRequired(c => c.Feedback).WithRequiredPrincipal();
modelBuilder.Entity<Campaign>().ToTable("Campaign");
modelBuilder.Entity<CampaignSurvey>().ToTable("Campaign");
modelBuilder.Entity<CampaignFeedback>().ToTable("Campaign");
}
【问题讨论】:
标签: asp.net-mvc-3 entity-framework-4.1 ef-code-first