Я занимаюсь небольшой перестрелкой с динамическими данными. У меня есть шаблон поля пользовательского шаблона базы данных, позволяющий пользователям загружать и редактировать изображения, где вставка работает, но обновление нет. Я могу сделать работу обновления, удаления режима если вставки вокруг, где uri
устанавливается в следующем коде (в DBImage_Edit.ascx.cs):Шаблон поля динамических данных ASP.NET
protected override void ExtractValues(IOrderedDictionary dictionary)
{
...
dictionary["contenttype"] = "image/" + imgext;
dictionary["filecontents"] = new System.Data.Linq.Binary(FileUploadEdit.FileBytes);
if (Mode == DataBoundControlMode.Insert)
{
dictionary["uri"] = imgname + "_" + DateTimeOffset.Now.Ticks.ToString() + "." + imgext;
}
...
}
Напомним, что если URI установлен в что-то другое, чем предыдущее значение в БД при редактировании , новое изображение загружено успешно. Если uri совпадает с предыдущим значением в БД, хотя файлы и contenttype изменены, SQL Server никогда не получает новости.
Метаданные:
...
[DisplayName("Uri")]
[ScaffoldColumn(true)]
[Required]
public object uri { get; set; }
[DisplayName("Graphic")]
[ScaffoldColumn(true)]
[UIHint("DBImage")]
public object filecontents { get; set; }
...
Я также удалил UpdateCheck но это не похоже, чтобы изменить поведение:
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_filecontents", DbType="VarBinary(MAX)")] //, UpdateCheck=UpdateCheck.Never
public System.Data.Linq.Binary filecontents
{
get
{
...
(см закомментирована UpdateCheck = UpdateCheck.Never)
С уважением,
Jordan