Linq 2 SQL на общем хосте

Недавно я столкнулся с проблемой linq на общем хосте.
Хост - Общий Интеллект, и они поддерживают v3.5 платформы. Тем не менее, я не уверен, что у них установлен SP1. Я подозреваю, что они этого не делают.

У меня есть простая 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, но безуспешно. Затем я попытался изменить свой запрос всеми возможными способами, удалив различные комбинации параметров where / orderby, а также ограничив мой запрос одним столбцом и даже удалив команду Take .

Поэтому мой вопрос состоит из 3 частей:

  1. Кто-нибудь еще сталкивался с этим и если да, есть ли "быстрое" исправление?
  2. Есть ли способ использовать источник данных для ограничения строк?
  3. Есть ли какой-то способ определить, какой версии фреймворка на общем хосте не хватает прямой электронной почты (что я сделал и жду ответа)
24.08.2008 23:07:25
1 ОТВЕТ

System.MethodAccessException генерируется платформой, когда отсутствует сборка, или одна из ссылок имеет неправильную версию.

Первое, что я хотел бы сделать, это попробовать загрузить и ссылаться на ваш код на сборки LINQ в вашем BIN вместо провайдеров общего хостинга GAC.

2
17.05.2013 02:09:39