2017-06-09 5 views
0

linqをSQLに使用するように既存のプロジェクトを変更しています。私はlinqを使用してストアドプロシージャを呼び出しています。linq to sql c#エンティティとaspxページの同じ名前

私は少し問題を抱えて仕事をしていました。私が見た事例や、私が前もってやった小さな実験のように、まったく動かなかっただけです。私は問題が何であるかを知っていると思うが、私はそれをどう修正するか分からない。だからここ

はコードです: "!NOPE"

 using (TEMPDataContext dbc = new TEMPDataContext(connectionString)) 
     { 
      List<TEMPquest> qlist = new List<TEMPquest>(); 
      qlist = (List<TEMPquest>)dbc.GetTEMPQuestByID(id); 
      if (qlist.Count == 0) 
      { 
       if (debug_level > 1) … 
      } 
      else if (qlist.Count > 1) 
      { 
       if (debug_level > 1) … 
      } 
      else 
      { 
       // There is exactly one row of data, so use it to populate the controls on the aspx side 

       TEMPquest tq = (TEMPquest) qlist[0]; 
       int id = tq.uid //<=== NOPE! 
      } 

大きいとそのコメント行それは問題を引き起こしています。このコードがサポートしているページはTEMPquest.aspxと呼ばれています。したがって、変数qlistとtqを宣言すると、エンティティではなくページが使用されます。これらの変数のすべてのプロパティは、エンティティではなくページのプロパティです!

私はページ名またはテーブル/エンティティ名を変更することでこれを解決できますが、できるだけ上司の仕事に邪魔にならないようにしたいと思います。プログラムで他のTEMPquest - エンティティ - ではなくページを参照できる方法はありますか?

私はdbc.TEMPquestを考えていましたが、それはそうではありません。ページまたはテーブル/エンティティの名前を変更する以外にこれを行う方法はありますか? (単純でなければ、名前を変更します)

+0

なぜあなたも依頼する悩ませていますか?ページの名前を変更すると、2秒かかることがあります。 – mason

答えて

0

完全な名前空間で変数を宣言します。

var qlist = new List<My.Namespace.ToEntity.TEMPquest>(); 
qlist = (List<My.Namespace.ToEntity.TEMPquest>)dbc.GetTEMPQuestByID(id); 

var tq = (My.Namespace.ToEntity.TEMPquest) qlist[0]; 
+0

瞬時に試してみます – elbillaf

+0

"My"は認識されません。新しいList のように名前空間だけで試してみましたが、運はありません。 ToEntityまたはToEntity()は認識されません。 – elbillaf

+0

"My.Namespace.ToEntity。"ネームスペースのプレースホルダです。すべての名前空間を名前空間に置き換えます –

関連する問題