У меня есть система, которая хранит данные из онлайн-базы данных SQL Server в локальном хранилище. Записи данных загружаются и загружаются с помощью веб-службы. Я использую ADO.Net Entity Data Model в моем коде.Веб-сервис бросает «Значение« null »не может быть проанализировано как тип« Guid ».» error
В некоторых запросах на загрузку для одной таблицы процедура не работает, когда я пытаюсь вызвать ее, выдавая сообщение об ошибке «Значение« null »не может быть проанализировано как тип« Guid ». Это случается только иногда, и я не решил, как повторить проблему. Я зарегистрировал его 80 раз за последний месяц, и за это время процедура была вызвана успешно 1200 раз.
У меня есть пять полей в записи базы данных для этой таблицы, которые определены как uniqueidentifiers. Два из них - «NOT NULL», а остальные три «NULL». Вот «CREATE TABLE» запрос с указанием Guid полей в этой таблице:
CREATE TABLE [dbo].[Circuit](
[CircuitID] [uniqueidentifier] NOT NULL,
[BoardID] [uniqueidentifier] NOT NULL,
[RCDID] [uniqueidentifier] NULL,
[CircuitMasterID] [uniqueidentifier] NULL,
[DeviceID] [uniqueidentifier] NULL,
CONSTRAINT [PK_CircuitGuid] PRIMARY KEY NONCLUSTERED
(
[CircuitID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
GO
ALTER TABLE [dbo].[Circuit] WITH CHECK ADD CONSTRAINT [FK_Circuit_RCD] FOREIGN KEY([RCDID])
REFERENCES [dbo].[RCD] ([RCDID])
GO
ALTER TABLE [dbo].[Circuit] CHECK CONSTRAINT [FK_Circuit_RCD]
GO
ALTER TABLE [dbo].[Circuit] WITH CHECK ADD CONSTRAINT [FK_CircuitGuid_Board] FOREIGN KEY([BoardID])
REFERENCES [dbo].[Board] ([BoardID])
GO
ALTER TABLE [dbo].[Circuit] CHECK CONSTRAINT [FK_CircuitGuid_Board]
GO
Данные, загруженные для Guid полей в этой таблице выглядит следующим образом:
{"__type":"Circuit:#WaspWA","BoardID":"edb5f774-5e5d-490c-860b-73c3419628cf","CircuitID":"e95bbfa3-2af6-49a5-94dd-c98924ec9a62","CircuitMasterID":null,"DeviceID":"daf12fce-675c-46d9-94c4-ed28c63cdf30","RCDID":null}
Эта запись была создана на одном машина загружается в базу данных SQL Server онлайн, а затем загружается на другую машину.
У меня есть другие подобные таблицы в базе данных, которые никогда не создают никаких проблем. Именно эта таблица вызывает сообщения об ошибках. Два поля, которые определены как «NOT NULL» (BoardID и CircuitID), всегда имеют в них данные и никогда не являются нулевыми.
Есть ли что-то очевидное, что я пропустил здесь?
Вы пытаетесь сохранить пустое/нулевое значение в 'CircuitID' и/или' BoardID'. Вы получаете нулевое значение, но база данных этого не позволит. Я предлагаю проверить данные перед их хранением. И войдите и сообщите об ошибке, когда это произойдет, чтобы вы могли исправить исходные данные. – VDWWD
Я могу видеть данные, которые я передаю на сервер, а CircuitID и BoardID всегда не являются нулевыми. Поэтому я не думаю, что это проблема. –
Я на полпути! Теперь я вижу, что я пытаюсь записать 'null' в CircuitMasterID, а не null. Теперь мне просто нужно выяснить, где мои js превращают нуль в строку. –