Недавно я столкнулся с проблемой 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 частей:
- Кто-нибудь еще сталкивался с этим и, если да, есть ли "быстрое" исправление?
- Есть ли способ использовать источник данных для ограничения строк?
- Есть ли какой-нибудь способ определить, какой версии фреймворка на общем хосте не хватает прямой отправки по электронной почте (что я уже сделал и жду ответа)