Я играю с Sharepoint 2007. У меня есть виртуальная машина (win server 2k3) с запущенным на ней экземпляром сервера sharepoint 2007. Сейчас я работаю над созданием веб-частей. Я успешно создал простые, такие как этот, который отображает текст:
public class SimpleWebPart : WebPart
{
private string _displayText = "Hello World!";
[WebBrowsable(true), Personalizable(true)]
public string DisplayText
{
get { return _displayText; }
set { _displayText = value; }
}
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
writer.Write(_displayText);
}
}
У меня есть этот (и несколько тестовых) внутри библиотеки классов, которую я помещаю в папку _app_bin
внутри C:\Inetpub\wwwroot\wss\VirtualDirectories\80
.
В последней версии, которую я добавил, используется LINQ для получения данных из таблицы, которую я добавил (не является частью Sharepoint):
public class SimpleDBWebPart : WebPart
{
protected override void Render(System.Web.UI.HtmlTextWriter writer)
{
var oDB = new SPWebPartDataClassesDataContext();
var oRes = oDB.GetAllFirstTable();
foreach(var item in oRes)
{
writer.Write("<div>Item Name: {0}</div>",item.text);
writer.Write("<div>Item ID: {0}</div>", item.id);
}
}
}
GetAllFirstTable()
- это хранимая процедура, которая получает все данные из моей тестовой таблицы:
ALTER PROCEDURE dbo.GetAllFirstTable
AS
SELECT * FROM FirstTable
RETURN
Когда я пытаюсь добавить WebPart на страницу, я получаю эту ошибку:
Кажется, что веб-часть "SimpleDBWebPart" вызывает проблему. Не удалось загрузить файл или сборку 'System.Data.Linq, версия = 3.5.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089' или одна из ее зависимостей. Система не может найти указанный файл.
Я использовал Reflector, чтобы убедиться, что у меня есть сборка внутри DLL:
И это похоже на случай. Нужно ли добавлять сборку в файл web.config сайта sharepoint? Или мне чего-то не хватает?
Спасибо, ребята!