У меня проблема с сохранением в столбце типа Date в SQL из Linq до SQL в C#
Проблема в том, что у меня есть столбец типа Date в SQL но когда я перетаскиваю это в dbml - свойство переходит на DateTime.
Всякий раз, когда я пытаюсь обновить это поле через Linq до SQL, возникает следующая ошибка:
String или двоичные данные будут усечены. Оператор был прекращен.
Теперь я знаю, что это связано с типом, который Linq для SQL пытается сохранить как DateTime, а сам столбец - как Date - но до сих пор я не нашел какое-то решение для этого.
Что можно сделать, чтобы Linq to SQL видел тип столбца как Date, а не DateTime, когда я извлекаю таблицу в dbml - или как я могу сохранить как DateTime в столбце типа Date.
Спасибо
РЕДАКТИРОВАТЬ: без отправки всего процесса просто таблица находится в dbml, и я выбираю строку с помощью Id
Затем я обновляю один полей (DateField), который имеет тип даты в SQL (который был перенесен в dbml как DateTime, поскольку нет типа даты) и отправляет изменение.
var rowToUpdate = _db.Orders.First(o => o.Id == Id);
rowToUpdate.DateField = Convert.ToDateTime(txtNewDate.Text).Date;
_db.SubmitChanges();
Дополнительно к этому ниже показан dbml (отредактированный для отображения имени поля)
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.[Order]")]
public partial class Order : INotifyPropertyChanging, INotifyPropertyChanged
{
[...]
private int _Id;
private System.Nullable<System.DateTime> _DateField;
[...]
Свойство DateTime не может быть изменено на Date (насколько я знаю), и поэтому, когда я пытаюсь сохранить его, оно ожидая DateTime, но вызывает проблему, так как необходимо урезать ее, чтобы сохранить как ожидаемый тип даты в SQL - выдает ошибку.