2009-08-24 16 views
0

LINQ to SQLとDataGridViewsを使用して、データベースの編集可能なユーザーインターフェイスを作成しています。
私の問題は、データベースの結果をフェッチするときにカラム名を変換する必要があることです。なぜなら、データベース内のすべての名前はVisual Studioスタジオのクラスデザイナでサポートされている唯一の言語ですが、異なる言語...LINQ to SQL、匿名型は読み取り専用です

は、だから私は匿名型を使用して考えた:

c_dgvShops.DataSource = (from Shop s in DataContext.Shops 
           select new 
            { 
             Azonosito = s.Shop_ID, 
             Nev = s.Name, 
             Megye = s.County, 
             Iranyitoszam = s.Zipcode, 
             Cim = s.Address, 
             Latogatasok_szama = s.Visits.Count 
            }); 

(から翻訳、[私はで表示しなければならない言語]匿名型のプロパティ名はハンガリー語であることに注意してください英語)

この結果、データGridViewsは読み取り専用です。
私はいくつかのGoogle検索を行い、これを見つけました: http://blogs.msdn.com/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in-a-linq-query-expression.aspx
は、この記事をもとに、私は「ボルト」と呼ばれる新しいクラス(ショップハンガリー同等)を作成し、翻訳されたプロパティ名とそれを埋め、そのクエリはなった:

c_dgvShops.DataSource = (from Shop s in DataContext.Shops 
           select new Bolt 
            { 
             Azonosito = s.Shop_ID, 
             Nev = s.Name, 
             Megye = s.County, 
             Iranyitoszam = s.Zipcode, 
             Cim = s.Address, 
             Latogatasok_szama = s.Visits.Count() 
            }); 

それは私には全く明らかではないが、どのようにしてDataGridViewに表示されたデータを編集することができたら、私は試して例外が発生しました:

NotSupportedException:クエリのエンティティタイプ 'DataTest_L2SQL.Bolt'の明示的な構築が許可されていません。

これを行う正しい方法は何ですか?エイリアス列名を表示するにはどうすればよいですか?

ありがとうございます!

答えて

2

データグリッドの列を手動で定義する必要があります。データグリッドを手動で定義する必要があります(キャプションを任意のものに設定し、サイズや表示形式をカスタマイズすることができます)この機能は、迅速かつ汚れた設定のみを目的としています。

+0

ああ、それは...私はそれをovercomplicated ...再び!ありがとうございました! – ShdNx

0

あなたは間違った方向に向かっています。ローカライゼーションには異なるクラスプロパティ名を使うべきではありません。

これに続いてguide to localize your page。列のHeaderTextを指定し、フォーム言語を変更して、言語のHeaderTextを再指定します。

+0

はい、私はすでにそれを理解しました。しかし、それではどうすればいいのですか? – ShdNx

関連する問題