2010-12-17 2 views
0

C 번호, Linq2Sql, .NET 2.0, SQL을 실행할 때 내가 선택 System.String에 형 System.Byte []의 캐스팅 할 수 없습니다 InvalidCastException이 다음 코드를 얻을 실행할 2005 익스프레스InvalidCastException이 LINQ 2 SQL 문을

테이블의 모든 행에서 발생하지는 않습니다. 즉,이 코드는 매우 짧은 시간 내에 실행됩니다. SYstem.Byte은 []

스택 추적은 예외가 LINQ 문에 발생하고 내가 코드에 를 F11 때 GetProject가 호출되지 않습니다 말한대로

내가 LINQ는 선언 테이블에 열이 없습니다 확인 이 메서드는 이 호출되기 전에 예외가 발생합니다.

그래서 Linq 프레임 워크 버그라고 생각합니다.

이게 저를 곤란하게 만들었습니까? 어떤 아이디어?

[코드]

public Project GetProject(int id) 
    { 
     var project = (from row in _dbctx.Projects 
         where row.ProjectID == id 
         select row).SingleOrDefault(); 

     Project proj = GetProject(project); 

     return proj; 
    } 

    private Project GetProject(TBRServices.Domain.TBR.DataContext.Project sqlproject) 
    { 
     Project project = new Project(); 

     project.ProjectID = sqlproject.ProjectID; 
     project.ProjectName = sqlproject.ProjectName; 
     project.ProjectDescription = sqlproject.ProjectDescription; 
     project.ClientID = sqlproject.ClientID; 
     project.PurchaseOrderNumber = sqlproject.PurchaseOrderNumber; 
     project.ProjectTotalBillingEstimate = sqlproject.ProjectTotalBillingEstimate; 
     project.EmployeeID = sqlproject.EmployeeID; 
     project.ProjectBeginDate = sqlproject.ProjectBeginDate.ToString(); 
     project.ProjectEndDate = sqlproject.ProjectEndDate.ToString(); 
     project.Active = sqlproject.Active; 
     project.InclGST = sqlproject.InclGST; 
     project.ContractRate = sqlproject.ContractRate; 
     project.MarginRate = sqlproject.MarginRate; 
     project.Notes = sqlproject.Notes; 
     project.PayrollTax = sqlproject.PayrollTax; 
     project.EmployeeReference = sqlproject.EmployeeReference; 
     project.PayReference = sqlproject.PayReference; 
     project.ProjectLocation = sqlproject.ProjectLocation; 
     project.ContractTypeID = sqlproject.ContractTypeID; 
     project.DoNotCalcMarginOrGST = sqlproject.DoNotCalcMarginOrGST; 
     project.ConvertToInvoice = sqlproject.ConvertToInvoice; 
     project.AuthFirstname = sqlproject.AuthFirstname; 
     project.AuthLastname = sqlproject.AuthLastname; 
     project.AuthEmail = sqlproject.AuthEmail; 
     project.CapturedDocumentType = sqlproject.CapturedDocumentType; 
     project.TimesheetProcessingType = sqlproject.TimesheetProcessingType; 
     project.TimesheetFrequency = sqlproject.TimesheetFrequency; 
     project.AggregateTimesheet = sqlproject.AggregateTimesheet; 
     project.AggregateAutomatically = sqlproject.AggregateAutomatically; 
     project.BusProcEmpCut = sqlproject.BusProcEmpCut; 
     project.BusProcAgencyCut = sqlproject.BusProcAgencyCut; 
     project.SendCopyTimesheet = sqlproject.SendCopyTimesheet; 
     project.TimesheetRecipient1 = sqlproject.TimesheetRecipient1; 
     project.TimesheetRecipient2 = sqlproject.TimesheetRecipient2; 
     project.SendCopyInvoice = sqlproject.SendCopyInvoice; 
     project.PublishedOn = sqlproject.PublishedOn.ToString(); 
     project.SendAggTimesheetsWhenReceived = sqlproject.SendAggTimesheetsWhenReceived; 
     project.AuthoriseInvoice = sqlproject.AuthoriseInvoice; 
     project.HourlyDailyMthly = sqlproject.HourlyDailyMthly; 
     project.EmployeeCategory = sqlproject.EmployeeCategory; 
     project.AgencyRate = sqlproject.AgencyRate; 
     project.ConsultantID = sqlproject.ConsultantID; 
     project.SendCopyInvoiceEmployee = sqlproject.SendCopyInvoiceEmployee; 
     project.UseClientDetailsForTimesheet = sqlproject.UseClientDetailsForTimesheet; 
     project.FaxedTimesheet = sqlproject.FaxedTimesheet; 
     project.TimesheetEditable = sqlproject.TimesheetEditable; 
     project.IncludeInReport = sqlproject.IncludeInReport; 
     project.SendLogonEmail = sqlproject.SendLogonEmail; 
     project.NoticePeriodID = sqlproject.NoticePeriodID; 
     project.ManagerCanViewPaidUnpaid = sqlproject.ManagerCanViewPaidUnpaid; 
     project.LesterSalesStaff = sqlproject.LesterSalesStaff; 
     project.IncludeSalesReport = sqlproject.IncludeSalesReport; 
     project.CurrencyAccount = sqlproject.CurrencyAccount; 
     project.LeaveMustBeAuthorisedTimesheet = sqlproject.LeaveMustBeAuthorisedTimesheet; 
     project.LeaveMustBeAuthorisedLeaveForm = sqlproject.LeaveMustBeAuthorisedLeaveForm; 
     project.DefaultHoursWorkedWeek = sqlproject.DefaultHoursWorkedWeek; 
     project.DefaultHoursWorkedDay = sqlproject.DefaultHoursWorkedDay; 
     project.AccruedLeaveStartDate = sqlproject.AccruedLeaveStartDate.ToString(); 
     project.AllowLeaveMoreThanAccrued = sqlproject.AllowLeaveMoreThanAccrued; 
     project.IsPaidASalary = sqlproject.IsPaidASalary; 
     project.AgencyID = sqlproject.AgencyID; 
     project.SendEmailToManagerToOKLeave = sqlproject.SendEmailToManagerToOKLeave; 
     project.SpecialPayrollNotes = sqlproject.SpecialPayrollNotes; 
     project.SpecialInvoicingNotes = sqlproject.SpecialInvoicingNotes; 
     project.InvoiceTermsMessage = sqlproject.InvoiceTermsMessage; 
     project.AuthManagerPhone = sqlproject.AuthManagerPhone; 
     project.LMF = sqlproject.LMF; 
     project.LMFPercent = sqlproject.LMFPercent; 
     project.LMFInclInPayRate = sqlproject.LMFInclInPayRate; 
     project.LMFOnTop = sqlproject.LMFOnTop; 
     project.AgencyComm = sqlproject.AgencyComm; 
     project.AgencyCommPercent = sqlproject.AgencyCommPercent; 
     project.AgencyCommInclInPayRate = sqlproject.AgencyCommInclInPayRate; 
     project.AgencyCommOnTop = sqlproject.AgencyCommOnTop; 
     project.PayRateInclMargin = sqlproject.PayRateInclMargin; 
     project.MarginRatePercent = sqlproject.MarginRatePercent; 
     project.MarginRateGST = sqlproject.MarginRateGST; 
     project.MarginRateInclInPayRate = sqlproject.MarginRateInclInPayRate; 
     project.MarginRateOnTop = sqlproject.MarginRateOnTop; 
     project.PayRateInclSuper = sqlproject.PayRateInclSuper; 
     project.PayrollTaxAmount = sqlproject.PayrollTaxAmount; 
     project.PayrollTaxPercent = sqlproject.PayrollTaxPercent; 
     project.PayrollTaxInclInPayRate = sqlproject.PayrollTaxInclInPayRate; 
     project.PayrollTaxOnTop = sqlproject.PayrollTaxOnTop; 
     project.TypeOfArrangement = sqlproject.TypeOfArrangement; 
     project.ParameterRequired = sqlproject.ParameterRequired; 
     project.SpecialPayrollEnabled = sqlproject.SpecialPayrollEnabled; 
     project.ClientContactUsedReceiptOfInvoiceID = sqlproject.ClientContactUsedReceiptOfInvoiceID; 
     project.ExcludeEmpNameOnInvoice = sqlproject.ExcludeEmpNameOnInvoice; 
     project.BPForReporting = sqlproject.BPForReporting; 
     project.UseGemteqInvoiceFormat = sqlproject.UseGemteqInvoiceFormat; 
     project.TreatPayrollDetailsSameAsBP = sqlproject.TreatPayrollDetailsSameAsBP; 


     return project; 
    } 

[/ 코드] 형식으로 캐스팅 할 수 없습니다

+0

는 각 라인에서 알고 계십니까을? –

+0

두 개체를 매핑하기위한이 보일러 플레이트 코드 대신 Hey man이 AutoMapper를 사용합니다. –

답변

0

비슷한 질문에 대한 답변을 확인하십시오. 그것은 정확한 답변을하지 않습니다하지만 당신은 당신의 쿼리에서 문제를 찾는 데 도움이 될 수 있습니다 -

Problem with Linq to SQL

0

System.Byte []로 선택 System.String

sqlproject에서 그 특성을 나타낸다 은 byte[]으로 저장되고, 해당 속성 인 projectstring