2008-08-24 29 views
0

私は最近、共有ホスト上でlinqに関する問題に遭遇しました。
ホストはShared Intellectであり、それらはフレームワークのv3.5をサポートしています。しかし、SP1がインストールされているかどうかは不明です。私の疑惑は彼らがしないことです。Linq 2共有ホスト上のSQL

私は、次のような構造を持っているシンプルなNewsテーブルを持っている:

NewsID   uniqueidentifier 
Title   nvarchar(250) 
Introduction nvarchar(1000) 
Article   ntext 
DateEntered  datetime (default getdate()) 
IsPublic  bit (default true) 

私の目標は、この表から3つの最新のレコードを表示することです。私は最初にD &Dメソッド(私は知っている、私は知っている)を行って、linqデータソースを作成し、私が望むように結果を制限する方法を見つけることができなかったので、それを削除し、次を書いた:

var dc = new NewsDataContext(); 
var news = from a in dc.News 
      where a.IsPublic == true 
      orderby a.DateEntered descending 
      select new { a.NewsID, a.Introduction }; 
lstNews.DataSource = news.Take(3); 
lstNews.DataBind(); 

これは私のローカルマシンで完全に機能しました。

はしかし、私は共有ホストにすべてをアップロードするとき、私は次のようなエラー受け取っ:

.Read_<>f__AnonymousType0`2 
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>) 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.MethodAccessException: 
.Read_<>f__AnonymousType0`2 
(System.Data.Linq.SqlClient.Implementation.ObjectMaterializer`1<System.Data.SqlClient.SqlDataReader>) 

を私はGoogleでエラーを検索しようとしたが、なしの成功を収めて。私はそれから、私が想像することのできるあらゆる方法でクエリを変更しようとしました。どこで/ orderbyパラメータのさまざまな組み合わせを削除するだけでなく、クエリを単一の列に制限し、さらには削除します。コマンドを実行します。

私の質問は、したがって、3つの部分に来る:誰がこれを発生し、そうならば、「速い」の修正があるいます

  1. データソースを使用して行を制限する方法はありますか?
  2. それがあるとき

答えて

2

System.MethodAccessExceptionは、フレームワークによってスローされた共有ホストが直接それらを電子メールで送信するの不足している(私が行っているとの回答を待っています)フレームワークのバージョンを確認するにはいくつかの方法がありますアセンブリが見つからない、または参照の1つが間違ったバージョンです。

まず、共有ホスティングプロバイダのGACではなく、BINのLINQアセンブリにコードをアップロードして参照してください。

関連する問題