2012-03-23 6 views
0

を付属しなければなりません...そしてそこに私は、データの下を参照してください。インデックス付きプロパティのエラー:私は、私はその後、詳細については、内部例外を見て聞いていますエラーに</p> <blockquote> <p>"EntityCommandExecutionException was unhandled by user code.</p> </blockquote> <p>を受ける資格も、私は下に含まれたコードを実行中に引数を明示的

"In order to evaluate an indexed property, the property must be qualified and the arguments must be explicitly supplied by the user."

と内部例外の下 - >メッセージ:

"A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The handle is invalid.)"

T

Dim qpeople = (From p In dbContext2.PEOPLE _ 
            Where p.PEOPLE_ID = ID _ 
            Order By p.CREATE_DATE Descending _ 
            Select p).FirstOrDefault 

大きなコードのコンテキストは次のとおりです:

Protected Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click 
    Dim semester As String = ddlwhSemester.SelectedValue 
    Dim year As String = txtwhYear.Text 
    Dim exists As String = "N" 
    Dim pcsemester As String = ddlSemester.SelectedItem.Text 
    Dim pcyear As String = ddlYear.SelectedItem.Text 
    Using dbContext As pbu_housingEntities = New pbu_housingEntities 
     ' Get the list of residents in webHousing. 
     Dim qresidents = (From p In dbContext.Residents _ 
          Where p.semester = semester _ 
          Where p.year = year _ 
         Select p.people_code_id) 
     Using dbContext2 As Campus6Entities = New Campus6Entities 
      ' Get the list of students in PowerCampus. 
      Dim qstudents = (From p In dbContext2.RESIDENCies _ 
          Join a In dbContext2.ACADEMICs _ 
          On a.PEOPLE_CODE_ID Equals p.PEOPLE_CODE_ID _ 
          Where p.ACADEMIC_TERM = pcsemester _ 
          Where p.ACADEMIC_YEAR = pcyear _ 
          Where a.ACADEMIC_TERM = pcsemester _ 
          Where a.ACADEMIC_YEAR = pcyear _ 
          Where a.PROGRAM = "UND" _ 
          Where (a.CLASS_LEVEL = "FR" _ 
          Or a.CLASS_LEVEL = "FRNR" _ 
          Or a.CLASS_LEVEL = "FRST" _ 
          Or a.CLASS_LEVEL = "SO" _ 
          Or a.CLASS_LEVEL = "JR" _ 
          Or a.CLASS_LEVEL = "SR" _ 
          Or a.CLASS_LEVEL = "SR5" _ 
          Or a.CLASS_LEVEL = "Tran") _ 
          Select p.PEOPLE_ID).Distinct 
      For Each row In qstudents 
       exists = "N" 
       For Each res In qresidents 
        If row.ToString = res.ToString Then 
         exists = "Y" 
        End If 
       Next 
       If exists = "Y" Then 
        ' Skip adding. 
       Else 
        ' Add a row. 
        ' Get the ID 
        Dim ID As String = row 
        ' Get info from PowerCampus 
        Dim qpeople = (From p In dbContext2.PEOPLE _ 
            Where p.PEOPLE_ID = ID _ 
            Order By p.CREATE_DATE Descending _ 
            Select p).FirstOrDefault 
        Dim people_code_id As String = qpeople.PEOPLE_CODE_ID 
        Dim qacademic = (From p In dbContext2.ACADEMICs _ 
            Where p.PEOPLE_CODE_ID = people_code_id _ 
            Where p.ACADEMIC_TERM = pcsemester _ 
            Where p.ACADEMIC_YEAR = pcyear _ 
            Order By p.CREATE_DATE Descending _ 
            Select p.CLASS_LEVEL).FirstOrDefault 
        Dim qaddress = (From p In dbContext2.ADDRESSes _ 
            Where p.PEOPLE_ORG_CODE_ID = people_code_id _ 
            Where p.ADDRESS_TYPE = "Perm" _ 
            Order By p.CREATE_DATE Descending _ 
            Select p).FirstOrDefault 
        Dim qdemographics = (From p In dbContext2.DEMOGRAPHICS _ 
             Where p.PEOPLE_CODE_ID = people_code_id _ 
             Order By p.CREATE_DATE Descending _ 
             Select p.GENDER).FirstOrDefault 

        ' Create the new occupant. 
        Dim newres As New Resident 
        newres.people_code_id = ID 
        newres.person_name = qpeople.FIRST_NAME + " " + qpeople.MIDDLE_NAME + " " + qpeople.LAST_NAME 
        newres.first_name = qpeople.FIRST_NAME 
        newres.last_name = qpeople.LAST_NAME 
        newres.class_level = qacademic 
        newres.gender = qdemographics 
        newres.semester = semester 
        newres.year = year 
        newres.email = qaddress.EMAIL_ADDRESS 
        newres.create_date = Date.Now 
        dbContext.Residents.AddObject(newres) 
        dbContext.SaveChanges() 
       End If 
      Next 
     End Using 
    End Using 
End Sub 

答えて

1

私はこの前に気づかなかったが、あなたはこのようにあなたのIDを設定している:

Dim ID As String = row 

は、LINQクエリの前にintにIDを変換してみます。

+0

私はこのことを(完全に上記のコードを書き直す)すべてのものとその母親に試してみましたが、その修正は簡単でした。 – davemackey

+0

さて、それはうまくいきました...残念ながら、私はそれが文字列に設定された理由は、b/c整数が先行ゼロを切り捨てることを実現しました - そして残念ながら、もう一方のデータベースは先行ゼロを使用します。 – davemackey

+0

どこでもPEOPLE_CODE_IDを使用すると、常に文字Pで始まるように、先行ゼロの問題が解決されます。 – bendodge

1

があなたのデシベルをチェックして、主キーがあることを確認してください彼は、Visual Studioが故障していることであると考えてコーディングします。同様の問題があり、主キーが定義されていないことがわかりました。ちょうど考え、問題ではないかもしれないが、迅速なチェックの価値があります。

+0

残念なことに、残念なことに、それは主キーとして既に設定されています...簡単に修正することはできません。 : -/ – davemackey

関連する問題

 関連する問題