私は最近、共有ホスト上で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つの部分に来る:誰がこれを発生し、そうならば、「速い」の修正があるいます
- ?
- データソースを使用して行を制限する方法はありますか?
- それがあるとき