У меня странная проблема, когда я пытаюсь сохранить значение беззнакового поля nullable
в дб, используя Entity Framework 6
, и оно всегда устанавливает значение как NULL в дб, даже когда я отправляю фактические значения для сохранения. Я не уверен, что я делаю здесь не так.
У меня есть класс сущности:
[Table("Order")]
public class OrderForComparision
{
[Key]
public string TicketNumber { get; set; }
public unint? OriginID { get; set; }
}
У меня есть запрос на создание таблицы, который выглядит следующим образом:
CREATE TABLE [dbo].[Order](
[TicketNumber] [varchar](50) NOT NULL,
[OriginID] [bigint] NULL,
CONSTRAINT [PK_OrderId] PRIMARY KEY CLUSTERED
(
[TicketNumber] ASC
))
Я обновляю таблицу следующим образом:
try
{
using (var dbCon = GetDbContext())
{
var orderInDb = await dbCon.Orders.FirstOrDefaultAsync(x => x.TicketNumber == order.TicketNumber);
if (orderInDb == null)
{
orderInDb = new OrderForComparision
{
TicketNumber = order.TicketNumber,
OriginID = order.OriginID ?? null,
};
dbCon.Orders.Add(orderInDb);
}
else
{
orderInDb.OriginID = order.OriginID ?? null;
}
await dbCon.SaveChangesAsync();
}
}
catch (Exception ex)
{
throw ex;
}
Я вижу только NULL
в Db, даже когда я передаю значение в это поле. Когда я проверяю объект во время отладки, я вижу это:
ColumnName Value Type
OriginID 3823 uint?
Я пытался:
OriginID == null ? (uint?)null : order.OriginID.Value
,
OriginID = order.OriginID.HasValue ? order.OriginID.Value : (uint?)null
и
OriginID = order.OriginID ?? null
. И у меня пока ничего не получалось. Это может быть проблема с моим Db или способ, которым я сохраняю? Я просто не могу понять эту простую странную проблему.