Ошибка SharePoint 2010 0x80010102 при использовании Microsoft.SharePoint.Linq.DataContext
У меня есть старый проект 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