2017-05-05 5 views
0

私はそれを動作させることはできません次のコードがあります。LINQ - queryどこのメソッドエラー

私はLinqとEntityフレームワークを使用して新しいです。

私はコードサンプルを添付し、また、エラーのある画像を添付します。

私がやろうとしているのは、どこに「動的に」追加できるコードです。

Imports System.Linq 
Private cntx As New attmanager_bdEntities() 

Dim query = (From persona In cntx.tblperson 
         Select 
         ATT_TYPE = persona.att_type, 
         ATT_RECOG = persona.att_recog, 
         APELLIDO = persona.surname, 
         NOMBRE = persona.name, 
         PERSONA_ID = persona.id, 
         DNI = persona.identification, 
         DIRECCION = persona.address, 
         PIN = persona.att_pin, 
         TIPOASISTENCIA = persona.att_type, 
         EMAIL = persona.email, 
         EXTRA = persona.extra, 
         TELEFONO = persona.phone, 
         FECHANACIMIENTO = persona.birth, 
         SEXO = persona.sex, 
         DELETED = persona.deleted, 
         AREA_ID = persona.tblarea.id, 
         AREA = persona.tblarea.name, 
         CIUDAD = persona.tblcity.name, 
         CIUDAD_ID = persona.tblcity_id, 
         PROVINCIA = persona.tblcity.tblstate.name, 
         PAIS = persona.tblcity.tblstate.tblcountry.name 
         Where (DELETED = 0)) 

     query = query.Where(Function(a) a.AREA_ID = 1) 

'Here I should put another "Where"s 
dbgrid_listado.DataSource = query.ToList() 

enter image description here

エラー翻訳: "ペルソナ" 詳細をロードしようとしている

予期しない例外:どこの公共関数を呼び出すことができなかったため は、メソッドを呼び出すことができませんでしたが... ....... ...... ...... ...... ......これらの引数で。引数の パラメータ「述語」は

+1

英語でエラーを翻訳してここに投稿できますか? –

+0

最初のバージョンを編集したばかりかもしれません。 – Plutonix

+0

正直なところ、私はこのエラーについて次のようなコードを実行しようとすると、何が起こるのでしょう。 query = query。Where(関数(a)a.AREA_ID = 1) Whereメソッドを引数で呼び出すことができない継ぎ目があります。 –

答えて

0

私はそれを得た....。

NuGetパッケージマネージャを開き、EF6 をインストールしました。MySQL.DataとMySQL EF6プロバイダもインストールしました。

元のプロジェクトから新しいプロジェクトにフォームをインポートしました。

今、私はあなたの提案をお伝えします。

問題? .... .Netフレームワークのバージョンと、私が使用していたEF。

私はすべて更新しました。

0

なぜこのString 『「に』(オブジェクトの、オブジェクト)VB $ AnonymousDelegate_0に変換することができませんでしたか?

Dim query = (From persona In cntx.tblperson 
      Where persona.DELETED = 0 
      Select persona) 

あなたのタイプは21個のランダムプロパティの匿名タイプの代わりに「ペルソナ」です。

query = query.Where(Function(a) a.AREA_ID = 1) 

匿名型の操作は常に難しいです。また、私は常に選択の最後を置く...あなたは常にこのような匿名型のプロパティを一覧表示することができ

:たぶん

Dim query = (From persona In cntx.tblperson 
      Where persona.DELETED = 0 
      Select New With { 
         ATT_TYPE = persona.att_type, 
         ATT_RECOG = persona.att_recog, 
         APELLIDO = persona.surname, 
         NOMBRE = persona.name, 
         PERSONA_ID = persona.id, 
         DNI = persona.identification, 
         DIRECCION = persona.address, 
         PIN = persona.att_pin, 
         TIPOASISTENCIA = persona.att_type, 
         EMAIL = persona.email, 
         EXTRA = persona.extra, 
         TELEFONO = persona.phone, 
         FECHANACIMIENTO = persona.birth, 
         SEXO = persona.sex, 
         DELETED = persona.deleted, 
         AREA_ID = persona.tblarea.id, 
         AREA = persona.tblarea.name, 
         CIUDAD = persona.tblcity.name, 
         CIUDAD_ID = persona.tblcity_id, 
         PROVINCIA = persona.tblcity.tblstate.name, 
         PAIS = persona.tblcity.tblstate.tblcountry.name 
         }) 

アノンタイプを使用した句は、それをめちゃくちゃにして使用している場合persona.DELETED = 0は役に立ちますか?私はこの新しいものに古いプロジェクトから新しいプロジェクト

私は(例えば画像)すべてのリソースを移行を作成し

+0

新しいクエリで次のエラーが発生します。 > DbQuery(Of tblperson)タイプのパブリックメンバー –

+0

これは私を夢中にしています –

+0

vb.net(Visual Studio 2008など)の古いバージョンを使用している場合、それぞれの後ろにアンダースコアを追加する必要があります最後の行を除いて、 "From Persona In cntx.tblperson _"のようなクエリの行。 –