У меня есть старый проект Sharepoint 2010, в котором используются объекты Microsoft.SharePoint.Linq.DataContext, созданные с помощью инструмента SPMetal.
Недавно при доступе к объектам в DataContext я вижу следующую ошибку.Ошибка не согласована и возникает редко
Произошла неизвестная ошибка SPRequest.Дополнительная информация: 0x80010102 0x80010102
ошибка имеет следующее определение: «Попытка делать вызовы более чем одному потоку в однопоточном режиме»
Это произошло в нескольких областях кода, все из которых имеют общий доступэкземпляр Datacontext.
Пример кода работает большую часть времени и является наиболее простым примером, который я могу найти.Кто-нибудь знает причину этой проблемы
var ethnicity = from d in
ContextFactory.Instance.Ethnicities.OfType<Ethnicity>()
select new EthnicityDTO
{
ID = d.Id,
Title = d.Title,
TitleWelsh = d.TitleWelsh,
EthnicGroup = d.EthnicGroupDTO
};
public class ContextFactory
{
private static NightOutEntityDataContext _instance;
private static object syncRoot = new Object();
public static NightOutEntityDataContext Instance
{
get
{
if (_instance == null)
{
lock (syncRoot)
{
if (_instance == null)
_instance = new
NightOutEntityDataContext(EntityUtils.SiteUrl);
}
}
return _instance;
}
}
Где NightOutEntityDataContext - класс, автоматически сгенерированный через SPMetal