使用 EF 5(首先逆向工程代码),我的模型运行良好,直到它突然停止。
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'ProjectsDate' 没有定义键。定义此 EntityType 的键。
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'ProjectsRisk' 没有定义键。定义此 EntityType 的键。
我使用 fluent API 而不是属性定义了一个键,这是我的 ProjectsDates 类。
public partial class ProjectsDate { public string OSProjectCode { get; set; } public Nullable<System.DateTime> TargetStart { get; set; } public Nullable<System.DateTime> EndDateOriginal { get; set; } public Nullable<System.DateTime> EndDateChangeControl { get; set; } public Nullable<System.DateTime> EndDateActual { get; set; } public Nullable<System.DateTime> GoLiveAgreed { get; set; } public Nullable<System.DateTime> GoLiveActual { get; set; } public virtual Project Project { get; set; } }
public class ProjectsDateMap : EntityTypeConfiguration<ProjectsDate>
{
    public ProjectsDateMap()
    {
        // Primary Key
        this.HasKey(t => t.OSProjectCode);
        // Properties
        this.Property(t => t.OSProjectCode)
            .IsRequired()
            .HasMaxLength(10);
        // Table & Column Mappings
        this.ToTable("ProjectsDates");
        this.Property(t => t.OSProjectCode).HasColumnName("OSProjectCode");
        this.Property(t => t.TargetStart).HasColumnName("TargetStart");
        this.Property(t => t.EndDateOriginal).HasColumnName("EndDateOriginal");
        this.Property(t => t.EndDateChangeControl).HasColumnName("EndDateChangeControl");
        this.Property(t => t.EndDateActual).HasColumnName("EndDateActual");
        this.Property(t => t.GoLiveAgreed).HasColumnName("GoLiveAgreed");
        this.Property(t => t.GoLiveActual).HasColumnName("GoLiveActual");
        // Relationships
        this.HasRequired(t => t.Project)
            .WithOptional(t => t.ProjectsDate);
    }
}
为什么 EF 看不到我的 fluent API 映射?