C# 列名默认值被覆盖,但生成的查询仍然引用未定义的列

C# 列名默认值被覆盖,但生成的查询仍然引用未定义的列,c#,entity-framework-5,code-first,C#,Entity Framework 5,Code First,我有一个LINQ查询(涉及一个连接),它失败了,我知道一个异常来自实体框架的命名约定和假设,但我无法找到该设置的位置或如何关闭它。我得到的例外是: ORA-00904: \"Extent2\".\"Client_PermanentClientId\": invalid identifier" 在我们的任何表中都没有这样的列,它是一个表名(Client)和一个列(PermanentClientId)的组合,但是我已经用.HasColumnName()覆盖了(或者我认为是这样)所有的默认列名 谁能

我有一个LINQ查询(涉及一个连接),它失败了,我知道一个异常来自实体框架的命名约定和假设,但我无法找到该设置的位置或如何关闭它。我得到的例外是:

ORA-00904: \"Extent2\".\"Client_PermanentClientId\": invalid identifier"
在我们的任何表中都没有这样的列,它是一个表名(
Client
)和一个列(
PermanentClientId
)的组合,但是我已经用
.HasColumnName()
覆盖了(或者我认为是这样)所有的默认列名

谁能告诉我在EF中我去哪里关闭这个名字的创建,或者为什么它会旋转这个名字

客户端类:

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Paychex.IP.Common.Validation;


namespace Paychex.IP.Common.IPEntities.Models
{
    [Serializable]
    [Table("CLIENT")]
    public class Client : IPEntity
    {
        #region Entity properties and validation attributes

        [Key]
        [Range(1, int.MaxValue, ErrorMessage = "Client: PermanentClientId cannot be zero")]
        public int PermanentClientId { get; set; }

        public int AssociateNumber { get; set; }

        public int ClientNumber { get; set; }

        [StringLength(50, ErrorMessage = "Client: ClientName is limited to 50 characters")]
        public string ClientName { get; set; }

        [StringLength(30, ErrorMessage = "Client: Address1 is limited to 30 characters")]
        public string Address1 { get; set; }

        [StringLength(30, ErrorMessage = "Client: Address2 is limited to 30 characters")]
        public string Address2 { get; set; }

        [StringLength(24, ErrorMessage = "Client: City is limited to 24 characters")]
        public string City { get; set; }

        [StringLength(2, ErrorMessage = "Client: State is limited to 2 characters")]
        public string State { get; set; }

        [StringLength(10, ErrorMessage = "Client: ZipCode is limited to 10 characters")]
        public string ZipCode { get; set; }

        [StringLength(3, ErrorMessage = "Client: Country is limited to 3 characters")]
        public string Country { get; set; }

        [StringLength(3, ErrorMessage = "Client: ClientType is limited to 3 characters")]
        public string ClientType { get; set; }

        [StringLength(30, ErrorMessage = "Client: DoingBusinessAs is limited to 30 characters")]
        public string DoingBusinessAs { get; set; }

        [StringLength(30, ErrorMessage = "Client: Contact is limited to 30 characters")]
        public string Contact { get; set; }

        [StringLength(30, ErrorMessage = "Client: PhoneNumber is limited to 20 characters")]
        public string PhoneNumber { get; set; }

        [StringLength(10, ErrorMessage = "Client: Extension is limited to 10 characters")]
        public string Extension { get; set; }

        [StringLength(20, ErrorMessage = "Client: FaxNumber is limited to 20 characters")]
        public string FaxNumber { get; set; }

        [StringLength(10, ErrorMessage = "Client: FaxExtension is limited to 10 characters")]
        public string FaxExtension { get; set; }

        [StringLength(50, ErrorMessage = "Client: Email is limited to 50 characters")]
        public string Email { get; set; }

        public int NextEmployeeNumber { get; set; }

        [StringLength(15, ErrorMessage = "Client: PayFrequency is limited to 15 characters")]
        public string PayFrequency { get; set; }

        [StringLength(10, ErrorMessage = "Client: EmployeeSort is limited to 10 characters")]
        public string EmployeeSort { get; set; }

        [DbBoolValidation("Client: UseDivisions is not a valid DbBool")]
        public string UseDivisions { get; set; }

        [StringLength(10, ErrorMessage = "Client: ClientAccessType is limited to 10 characters")]
        public string ClientAccessType { get; set; }

        public string AutopayWageId { get; set; }

        public string Fein { get; set; }

        [DbBoolValidation("Client: HrModule is not a valid DbBool")]
        public string HrModule { get; set; }

        public int BankCode { get; set; }

        public int AchDays { get; set; }

        public string AchCollect { get; set; }

        [DbBoolValidation("Client: Updated is not a valid DbBool")]
        public string Updated { get; set; }

        [DbBoolValidation("Client: IatFlag is not a valid DbBool")]
        public string IatFlag { get; set; }

        [StringLength(50, ErrorMessage = "Client: OriginalEmail is limited to 50 characters")]
        public string OriginalEmail { get; set; }

        public virtual ICollection<ClientWage> Wages { get; set; }
        public virtual ICollection<ClientDivision> Divisions { get; set; }
        public virtual ICollection<ClientDepartment> Departments { get; set; }
        public virtual ICollection<ClientJob> Jobs { get; set; }
        public virtual ICollection<ClientDeduction> Deductions { get; set; }

        #endregion

        #region IValidatableObject interface implementation

        // No custom validation for now

        #endregion

        #region IValidationHelper interface implementation

        public override void PopulateContext(ValidationContext context)
        {
            context.Items.Clear();
            context.Items.Add("PermanentClientId", PermanentClientId);
            context.Items.Add("ClientName", ClientName);
            context.Items.Add("Address1", Address1);
            context.Items.Add("Address2", Address2);
            context.Items.Add("City", City);
            context.Items.Add("State", State);
            context.Items.Add("ZipCode", ZipCode);
            context.Items.Add("Country", Country);
            context.Items.Add("ClientType", ClientType);
            context.Items.Add("DoingBusinessAs", DoingBusinessAs);
            context.Items.Add("Contact", Contact);
            context.Items.Add("PhoneNumber", PhoneNumber);
            context.Items.Add("Extension", Extension);
            context.Items.Add("FaxNumber", FaxNumber);
            context.Items.Add("FaxExtension", FaxExtension);
            context.Items.Add("Email", Email);
            context.Items.Add("PayFrequency", PayFrequency);
            context.Items.Add("EmployeeSort", EmployeeSort);
            context.Items.Add("UseDivisions", UseDivisions);
            context.Items.Add("ClientAccessType", ClientAccessType);
            context.Items.Add("HrModule", HrModule);
            context.Items.Add("Updated", Updated);
            context.Items.Add("IatFlag", IatFlag);
            context.Items.Add("OriginalEmail", OriginalEmail);
        }

        #endregion
    }
}
使用系统;
使用System.Collections.Generic;
使用System.ComponentModel.DataAnnotations;
使用System.ComponentModel.DataAnnotations.Schema;
使用Paychex.IP.Common.Validation;
命名空间Paychex.IP.Common.IPEntities.Models
{
[可序列化]
[表(“客户”)]
公共类客户端:IPEntity
{
#区域实体属性和验证属性
[关键]
[范围(1,int.MaxValue,ErrorMessage=“客户端:PermanentClientId不能为零”)]
public int PermanentClientId{get;set;}
public int AssociateNumber{get;set;}
public int ClientNumber{get;set;}
[StringLength(50,ErrorMessage=“客户端:客户端名称限制为50个字符”)]
公共字符串ClientName{get;set;}
[StringLength(30,ErrorMessage=“客户端:地址1限制为30个字符”)]
公共字符串地址1{get;set;}
[StringLength(30,ErrorMessage=“客户端:地址2限制为30个字符”)]
公共字符串地址2{get;set;}
[StringLength(24,ErrorMessage=“客户端:城市限制为24个字符”)]
公共字符串City{get;set;}
[StringLength(2,ErrorMessage=“客户端:状态限制为2个字符”)]
公共字符串状态{get;set;}
[StringLength(10,ErrorMessage=“客户端:ZipCode限制为10个字符”)]
公共字符串ZipCode{get;set;}
[StringLength(3,ErrorMessage=“客户端:国家/地区限制为3个字符”)]
公共字符串国家{get;set;}
[StringLength(3,ErrorMessage=“客户端:ClientType限制为3个字符”)]
公共字符串ClientType{get;set;}
[StringLength(30,ErrorMessage=“客户端:DoingBusinessAs限制为30个字符”)]
公共字符串DoingBusinessAs{get;set;}
[StringLength(30,ErrorMessage=“客户端:联系人限制为30个字符”)]
公共字符串联系人{get;set;}
[StringLength(30,ErrorMessage=“客户端:电话号码限制为20个字符”)]
公共字符串PhoneNumber{get;set;}
[StringLength(10,ErrorMessage=“客户端:扩展名限制为10个字符”)]
公共字符串扩展名{get;set;}
[StringLength(20,ErrorMessage=“客户端:传真号码限制为20个字符”)]
公共字符串传真号码{get;set;}
[StringLength(10,ErrorMessage=“客户端:传真扩展名限制为10个字符”)]
公共字符串扩展名{get;set;}
[StringLength(50,ErrorMessage=“客户端:电子邮件限制为50个字符”)]
公共字符串电子邮件{get;set;}
public int NextEmployeeNumber{get;set;}
[StringLength(15,ErrorMessage=“客户端:支付频率限制为15个字符”)]
公共字符串支付频率{get;set;}
[StringLength(10,ErrorMessage=“客户端:EmployeeSort限制为10个字符”)]
公共字符串EmployeeSort{get;set;}
[DbBoolValidation(“客户端:UseDivisions不是有效的DbBool”)]
公共字符串UseDivisions{get;set;}
[StringLength(10,ErrorMessage=“客户端:ClientAccessType限制为10个字符”)]
公共字符串ClientAccessType{get;set;}
公共字符串自动支付ID{get;set;}
公共字符串Fein{get;set;}
[DbBoolValidation(“客户端:HrModule不是有效的DbBool”)]
公共字符串模块{get;set;}
公共整数银行代码{get;set;}
公共整数{get;set;}
公共字符串AchCollect{get;set;}
[DbBoolValidation(“客户端:更新的不是有效的DbBool”)]
公共字符串已更新{get;set;}
[DbBoolValidation(“客户端:IatFlag不是有效的DbBool”)]
公共字符串标记{get;set;}
[StringLength(50,ErrorMessage=“客户端:OriginalEmail限制为50个字符”)]
公共字符串OriginalEmail{get;set;}
公共虚拟ICollection{get;set;}
公共虚拟ICollection分区{get;set;}
公共虚拟ICollection部门{get;set;}
公共虚拟ICollection作业{get;set;}
公共虚拟ICollection扣减{get;set;}
#端区
#区域表对象接口实现
//目前没有自定义验证
#端区
#区域IValidationHelper接口实现
公共覆盖无效PopulateContext(ValidationContext)
{
context.Items.Clear();
context.Items.Add(“PermanentClientId”,PermanentClientId);
context.Items.Add(“ClientName”,ClientName);
上下文。项目。添加(“地址1”,地址1);
上下文。项目。添加(“地址2”,地址2);
上下文。项目。添加(“城市”,城市);
添加(“状态”,状态);
context.Items.Add(“ZipCode”,ZipCode);
上下文。项目。添加(“国家”,国家);
context.Items.Add(“ClientType”,ClientType);
context.Items.Add(“DoingBusinessAs”,DoingBusinessAs);
上下文。项目。添加(“联系人”,联系人);
context.Items.Add(“PhoneNumber”,PhoneNumber);
using System.Data.Entity.ModelConfiguration;

namespace Paychex.IP.Common.IPEntities.Models.Mappings
{
    public class Client_map : EntityTypeConfiguration<Client>
    {
        public Client_map()
        {
            this.ToTable("CLIENT", "INSTANTPAY");

            // Primary Key
            this.HasKey(t => t.PermanentClientId);

            // Column Properties

            this.Property(t => t.PermanentClientId)
                .HasColumnName("PCLIENT_ID");

            this.Property(t => t.AssociateNumber)
                .HasColumnName("ASSOCIATE_NO");

            this.Property(t => t.ClientNumber)
                .HasColumnName("CLIENT_NO");

            this.Property(t => t.ClientName)
                .HasColumnName("CLIENT_NAME");

            this.Property(t => t.Address1)
                .HasColumnName("ADDRESS1");

            this.Property(t => t.Address2)
                .HasColumnName("ADDRESS2");

            this.Property(t => t.City)
                .HasColumnName("CITY");

            this.Property(t => t.State)
                .HasColumnName("STATE");

            this.Property(t => t.ZipCode)
                .HasColumnName("ZIP");

            this.Property(t => t.Country)
                .HasColumnName("COUNTRY");

            this.Property(t => t.ClientType)
                .HasColumnName("CLIENT_TYPE");

            this.Property(t => t.DoingBusinessAs)
                .HasColumnName("DOING_BUSINESS_AS");

            this.Property(t => t.Contact)
                .HasColumnName("CONTACT");

            this.Property(t => t.PhoneNumber)
                .HasColumnName("PHONE");

            this.Property(t => t.Extension)
                .HasColumnName("EXTENSION");

            this.Property(t => t.FaxNumber)
                .HasColumnName("FAX");

            this.Property(t => t.FaxExtension)
                .HasColumnName("FAX_EXTENSION");

            this.Property(t => t.Email)
                .HasColumnName("EMAIL");

            this.Property(t => t.NextEmployeeNumber)
                .HasColumnName("NEXTEMP");

            this.Property(t => t.PayFrequency)
                .HasColumnName("PAY_FREQ");

            this.Property(t => t.EmployeeSort)
                .HasColumnName("EMPSORT");

            this.Property(t => t.UseDivisions)
                .HasColumnName("DIVUSE");

            this.Property(t => t.ClientAccessType)
                .HasColumnName("CLIENT_ACCESS_TYPE");

            this.Property(t => t.AutopayWageId)
                .HasColumnName("AUTOPAY_WAGE_ID");

            this.Property(t => t.Fein)
                .HasColumnName("FEIN");

            this.Property(t => t.HrModule)
                .HasColumnName("HR_MODULE");

            this.Property(t => t.BankCode)
                .HasColumnName("BANK_CODE");

            this.Property(t => t.AchDays)
                .HasColumnName("ACH_DAYS");

            this.Property(t => t.AchCollect)
                .HasColumnName("ACH_COLLECT");

            this.Property(t => t.Updated)
                .HasColumnName("UPDATED");

            this.Property(t => t.IatFlag)
                .HasColumnName("IAT_FLAG");

            this.Property(t => t.OriginalEmail)
                .HasColumnName("ORIG_EMAIL");
        }
    }
}
using System.Data.Entity.ModelConfiguration;


namespace Paychex.IP.Common.IPEntities.Models.Mappings
{
    public class ClientDeduction_map : EntityTypeConfiguration<ClientDeduction>
    {
        public ClientDeduction_map()
        {
            // Primary Key
            this.HasKey(t => new { t.PermanentClientId, t.DeductionId });

            this.ToTable("CLIENTDEDUCTION", "INSTANTPAY");

            // Column Properties

            this.Property(t => t.PermanentClientId)
                .HasColumnName("PCLIENT_ID")
                .IsRequired();

            this.Property(t => t.DeductionId)
                .HasColumnName("DEDUCTION_ID")
                .IsRequired();

            this.Property(t => t.Active)
                .HasColumnName("ACTIVE")
                .HasMaxLength(1);

            this.Property(t => t.AllowOnLevy)
                .HasColumnName("ALLOW_ON_LEVY")
                .HasMaxLength(1);

            this.Property(t => t.AnnualLimit)
                .HasColumnName("ANNUAL_LIMIT")
                .HasPrecision(9, 2);

            this.Property(t => t.Frequency)
                .HasColumnName("FREQUENCY");

            this.Property(t => t.LimitPerPay)
                .HasColumnName("LIMIT_PER_PAY")
                .HasPrecision(5, 2);

            this.Property(t => t.Description)
                .HasColumnName("DESCRIPTION")
                .HasMaxLength(20);

            this.Property(t => t.PaceId)
                .HasColumnName("PACE_ID");

            this.Property(t => t.Priority)
                .HasColumnName("PRIORITY");

            this.Property(t => t.RateType)
                .HasColumnName("RATE_TYPE")
                .HasMaxLength(10);

            this.Property(t => t.ShortDescription)
                .HasColumnName("SHORTDESC")
                .HasMaxLength(5);

            this.Property(t => t.VendorId)
                .HasColumnName("VENDOR_ID")
                .HasMaxLength(8);

            this.HasRequired(t => t.Client)
                .WithMany(w => w.Deductions)
                .HasForeignKey(t => new { t.PermanentClientId });

        }
    }
}    
       protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<ColumnTypeCasingConvention>();

        var mbClient = new Client_map();
        modelBuilder.Configurations.Add(mbClient);

        var mbActivePayrolls = new ActivePayroll_map();
        modelBuilder.Configurations.Add(mbActivePayrolls);

        var mbPaychecks = new Paycheck_map();
        modelBuilder.Configurations.Add(mbPaychecks);

        var mbPaychecktax = new PaycheckTax_map();
        modelBuilder.Configurations.Add(mbPaychecktax);

        var mbPaycheckwage = new PaycheckWage_map();
        modelBuilder.Configurations.Add(mbPaycheckwage);

        var mbPaycheckDeduction = new PaycheckDeduction_map();
        modelBuilder.Configurations.Add(mbPaycheckDeduction);

        var mbStates= new State_map();
        modelBuilder.Configurations.Add(mbStates);

        var mbClientHeaderSchedule = new ClientScheduleHeader_map();
        modelBuilder.Configurations.Add(mbClientHeaderSchedule);

        var mbClientDepartment = new ClientDepartment_map();
        modelBuilder.Configurations.Add(mbClientDepartment);

        var mbClientDivision = new ClientDivision_map();
        modelBuilder.Configurations.Add(mbClientDivision);

        var mbClientWage = new ClientWage_map();
        modelBuilder.Configurations.Add(mbClientWage);

        var mbViewEmployeeList = new ViewEmployeeList_map();
        modelBuilder.Configurations.Add(mbViewEmployeeList);


        base.OnModelCreating(modelBuilder);
    }