C# 类型中的每个属性名称必须是唯一的

C# 类型中的每个属性名称必须是唯一的,c#,entity-framework,C#,Entity Framework,当我在数据库中创建一个视图时,ef将更改此错误消息。 SPL和Segementation是表,vwSPLGrade是视图 select spl.*,grade.SegmentationDisplay from SPL as spl left join Segmentation as grade on UPPER(spl.HCPEID) = UPPER(grade.HCPEID) where spl.status = 1 and grade.status =1 我需要做什么来解决这个问题 pub

当我在数据库中创建一个视图时,ef将更改此错误消息。 SPL和Segementation是表,vwSPLGrade是视图

select spl.*,grade.SegmentationDisplay from SPL as spl
left join Segmentation as grade
on UPPER(spl.HCPEID) = UPPER(grade.HCPEID)
where spl.status = 1 and grade.status =1
我需要做什么来解决这个问题

public class SPL : Entity
{
    public SPL() { }

    public string TA { get; set; }
    public string TerritoryCode { get; set; }
    public string YearMonth { get; set; }
    public string HCPEID { get; set; }
    public string HCOVeevaId { get; set; }
    public DateTime? FocusDate { get; set; }
    public Guid? SurveyId { get; set; }
    public bool? IsSPL { get; set; }
}

public class Segmentation : Entity
{
    public Segmentation() { }

    public string TA { get; set; }
    public string HCPEID { get; set; }
    public string SegmentationDisplay { get; set; }
    public string SegmentationCalculate { get; set; }
    public string SegmentationMRManual { get; set; }
    public string SegmentationAdminChange { get; set; }
    public Guid? SurveyId { get; set; }
    public string TerritoryCode { get; set; }
    public string YearMonth { get; set; }
}

public class vwSPLGrade : Entity
{
    public vwSPLGrade() { }

    public string TA { get; set; }
    public string TerritoryCode { get; set; }
    public string YearMonth { get; set; }
    public string HCPEID { get; set; }
    public string HCOVeevaId { get; set; }
    public DateTime? FocusDate { get; set; }
    public Guid? SurveyId { get; set; }
    public bool? IsSPL { get; set; }
    public string Grade { get; set; }
}

public class SPLMap : EntityTypeConfiguration<SPL>
{
    public SPLMap()
    {
        this.HasKey(t => t.Id);

        this.Property(t => t.Id)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

        this.ToTable("SPL");
        this.Property(t => t.Id).HasColumnName("Id");
        this.Property(t => t.TA).HasColumnName("TA");
        this.Property(t => t.TerritoryCode).HasColumnName("TerritoryCode");
        this.Property(t => t.YearMonth).HasColumnName("YearMonth");
        this.Property(t => t.HCPEID).HasColumnName("HCPEID");
        this.Property(t => t.HCOVeevaId).HasColumnName("HCOVeevaId");
        this.Property(t => t.FocusDate).HasColumnName("FocusDate");
        this.Property(t => t.SurveyId).HasColumnName("SurveyId");
        this.Property(t => t.IsSPL).HasColumnName("IsSPL");

        this.Property(t => t.Status).HasColumnName("status");
        this.Property(t => t.CreateBy).HasColumnName("create_by");
        this.Property(t => t.CreateDate).HasColumnName("create_date");
        this.Property(t => t.LastModifiedBy).HasColumnName("last_modified_by");
        this.Property(t => t.LastModifiedDate).HasColumnName("last_modified_date");

    }
}

public class SegmentationMap : EntityTypeConfiguration<Segmentation>
{
    public SegmentationMap()
    {


        this.HasKey(t => t.Id);


        this.Property(t => t.Id)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

        this.ToTable("Segmentation");
        this.Property(t => t.Id).HasColumnName("Id");
        this.Property(t => t.TA).HasColumnName("TA");
        this.Property(t => t.HCPEID).HasColumnName("HCPEID");
        this.Property(t => t.SegmentationDisplay).HasColumnName("TerritoryCode");
        this.Property(t => t.SegmentationCalculate).HasColumnName("SegmentationCalculate");
        this.Property(t => t.SegmentationMRManual).HasColumnName("SegmentationMRManual");
        this.Property(t => t.SegmentationAdminChange).HasColumnName("SegmentationAdminChange");
        this.Property(t => t.SurveyId).HasColumnName("SurveyId");
        this.Property(t => t.TerritoryCode).HasColumnName("TerritoryCode");
        this.Property(t => t.YearMonth).HasColumnName("YearMonth");

        this.Property(t => t.Status).HasColumnName("status");
        this.Property(t => t.CreateBy).HasColumnName("create_by");
        this.Property(t => t.CreateDate).HasColumnName("create_date");
        this.Property(t => t.LastModifiedBy).HasColumnName("last_modified_by");
        this.Property(t => t.LastModifiedDate).HasColumnName("last_modified_date");

    }
}

public class vwSPLGradeMap : EntityTypeConfiguration<vwSPLGrade>
{
    public vwSPLGradeMap()
    {
        this.ToTable("VW_SPLGrade");
        this.Property(t => t.Id).HasColumnName("Id");
        this.Property(t => t.TA).HasColumnName("TA");
        this.Property(t =>t.TerritoryCode).HasColumnName("TerritoryCode");
        this.Property(t => t.YearMonth).HasColumnName("YearMonth");
        this.Property(t => t.HCPEID).HasColumnName("HCPEID");
        this.Property(t => t.HCOVeevaId).HasColumnName("HCOVeevaId");
        this.Property(t => t.FocusDate).HasColumnName("FocusDate");
        this.Property(t => t.SurveyId).HasColumnName("SurveyId");
        this.Property(t => t.IsSPL).HasColumnName("IsSPL");
        this.Property(t => t.Grade).HasColumnName("Grade");
        this.Property(t => t.Status).HasColumnName("status");
        this.Property(t => t.CreateBy).HasColumnName("create_by");
        this.Property(t => t.CreateDate).HasColumnName("create_date");
     this.Property(t=>t.LastModifiedBy).HasColumnName("last_modified_by");
this.Property(t=>t.LastModifiedDate).HasColumnName("last_modified_date");
    }
}
公共类SPL:实体
{
公共SPL(){}
公共字符串TA{get;set;}
公共字符串TerritoryCode{get;set;}
公共字符串YearMonth{get;set;}
公共字符串HCPEID{get;set;}
公共字符串HCOVeevaId{get;set;}
公共日期时间?FocusDate{get;set;}
公共Guid?SurveyId{get;set;}
公共bool?IsSPL{get;set;}
}
公共类划分:实体
{
公共分段(){}
公共字符串TA{get;set;}
公共字符串HCPEID{get;set;}
公共字符串分段显示{get;set;}
公共字符串分段计算{get;set;}
公共字符串分段mrmanual{get;set;}
公共字符串分段AdminChange{get;set;}
公共Guid?SurveyId{get;set;}
公共字符串TerritoryCode{get;set;}
公共字符串YearMonth{get;set;}
}
公共类级别:实体
{
公共vwSPLGrade(){}
公共字符串TA{get;set;}
公共字符串TerritoryCode{get;set;}
公共字符串YearMonth{get;set;}
公共字符串HCPEID{get;set;}
公共字符串HCOVeevaId{get;set;}
公共日期时间?FocusDate{get;set;}
公共Guid?SurveyId{get;set;}
公共bool?IsSPL{get;set;}
公共字符串等级{get;set;}
}
公共类SPLMap:EntityTypeConfiguration
{
公共地图()
{
this.HasKey(t=>t.Id);
this.Property(t=>t.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
本表为可转帐(“SPL”);
this.Property(t=>t.Id).HasColumnName(“Id”);
this.Property(t=>t.TA).HasColumnName(“TA”);
this.Property(t=>t.TerritoryCode).HasColumnName(“TerritoryCode”);
this.Property(t=>t.YearMonth).HasColumnName(“YearMonth”);
this.Property(t=>t.HCPEID).HasColumnName(“HCPEID”);
this.Property(t=>t.HCOVeevaId).HasColumnName(“HCOVeevaId”);
this.Property(t=>t.FocusDate).HasColumnName(“FocusDate”);
this.Property(t=>t.SurveyId).HasColumnName(“SurveyId”);
this.Property(t=>t.IsSPL).HasColumnName(“IsSPL”);
this.Property(t=>t.Status).HasColumnName(“Status”);
this.Property(t=>t.CreateBy).HasColumnName(“create_by”);
this.Property(t=>t.CreateDate).HasColumnName(“create_date”);
this.Property(t=>t.LastModifiedBy).HasColumnName(“last_modified_by”);
this.Property(t=>t.LastModifiedDate).HasColumnName(“上次修改日期”);
}
}
公共类分段映射:EntityTypeConfiguration
{
公共分段图()
{
this.HasKey(t=>t.Id);
this.Property(t=>t.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
本表为可转帐(“分割”);
this.Property(t=>t.Id).HasColumnName(“Id”);
this.Property(t=>t.TA).HasColumnName(“TA”);
this.Property(t=>t.HCPEID).HasColumnName(“HCPEID”);
this.Property(t=>t.SegmentationDisplay).HasColumnName(“TerritoryCode”);
this.Property(t=>t.SegmentationCalculate).HasColumnName(“SegmentationCalculate”);
this.Property(t=>t.SegmentationMRManual).HasColumnName(“SegmentationMRManual”);
this.Property(t=>t.SegmentationAdminChange).HasColumnName(“SegmentationAdminChange”);
this.Property(t=>t.SurveyId).HasColumnName(“SurveyId”);
this.Property(t=>t.TerritoryCode).HasColumnName(“TerritoryCode”);
this.Property(t=>t.YearMonth).HasColumnName(“YearMonth”);
this.Property(t=>t.Status).HasColumnName(“Status”);
this.Property(t=>t.CreateBy).HasColumnName(“create_by”);
this.Property(t=>t.CreateDate).HasColumnName(“create_date”);
this.Property(t=>t.LastModifiedBy).HasColumnName(“last_modified_by”);
this.Property(t=>t.LastModifiedDate).HasColumnName(“上次修改日期”);
}
}
公共类VWSLPgradeMap:EntityTypeConfiguration
{
公共地图()
{
本表为ToTable(“VW_等级”);
this.Property(t=>t.Id).HasColumnName(“Id”);
this.Property(t=>t.TA).HasColumnName(“TA”);
this.Property(t=>t.TerritoryCode).HasColumnName(“TerritoryCode”);
this.Property(t=>t.YearMonth).HasColumnName(“YearMonth”);
this.Property(t=>t.HCPEID).HasColumnName(“HCPEID”);
this.Property(t=>t.HCOVeevaId).HasColumnName(“HCOVeevaId”);
this.Property(t=>t.FocusDate).HasColumnName(“FocusDate”);
this.Property(t=>t.SurveyId).HasColumnName(“SurveyId”);
this.Property(t=>t.IsSPL).HasColumnName(“IsSPL”);
this.Property(t=>t.Grade).HasColumnName(“Grade”);
this.Property(t=>t.Status).HasColumnName(“Status”);
this.Property(t=>t.CreateBy).HasColumnName(“create_by”);
this.Property(t=>t.CreateDate).HasColumnName(“create_date”);
this.Property(t=>t.LastModifiedBy).HasColumnName(“last_modified_by”);
this.Property(t=>t.LastModifiedDate).HasColumnName(“上次修改日期”);
}
}

完整的错误消息是

在模型生成过程中检测到一个或多个验证错误: TerritoryCode:Name:类型中的每个属性名称都必须是唯一的。已定义属性名称“TerritoryCode”

我将
SegmentationDisplay
映射到列名
TerritoryCode
时出错

public class SegmentationMap : EntityTypeConfiguration<Segmentation>
{
    public SegmentationMap()
    {
        this.HasKey(t => t.Id);

        this.Property(t => t.Id)
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

        this.ToTable("Segmentation");
        this.Property(t => t.Id).HasColumnName("Id");
        this.Property(t => t.TA).HasColumnName("TA");
        this.Property(t => t.HCPEID).HasColumnName("HCPEID");
        //it should be this.Property(t => t.SegmentationDisplay).HasColumnName("SegmentationDisplay"); 
        this.Property(t => t.SegmentationDisplay).HasColumnName("TerritoryCode"); 
        this.Property(t => t.SegmentationCalculate).HasColumnName("SegmentationCalculate");
        this.Property(t => t.SegmentationMRManual).HasColumnName("SegmentationMRManual");
        this.Property(t => t.SegmentationAdminChange).HasColumnName("SegmentationAdminChange");
        this.Property(t => t.SurveyId).HasColumnName("SurveyId");
        this.Property(t => t.TerritoryCode).HasColumnName("TerritoryCode");
        this.Property(t => t.YearMonth).HasColumnName("YearMonth");

        this.Property(t => t.Status).HasColumnName("status");
        this.Property(t => t.CreateBy).HasColumnName("create_by");
        this.Property(t => t.CreateDate).HasColumnName("create_date");
        this.Property(t => t.LastModifiedBy).HasColumnName("last_modified_by");
        this.Property(t => t.LastModifiedDate).HasColumnName("last_modified_date");
    }
}
公共类分段映射:EntityTypeConfiguration
{
公共分段图()
{
this.HasKey(t=>t.Id);
this.Property(t=>t.Id)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
本表为可转帐(“分割”);
this.Property(t=>t.Id).HasColumnName(“Id”);
this.Property(t=>t.TA).HasColumnName(“TA”);
this.Property(t=>t.HCPEID).HasColumnName(“HCPEID”);