Ошибка 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

0 ответов

Другие вопросы по тегам