私はダイナミックデータでマイナーな小競り合いに従事しています。カスタムデータベース画像フィールドテンプレートを使用して、挿入は機能するが更新は機能しない場合に、ユーザーが画像をアップロードおよび編集できるようにします。次のコード(DBImage_Edit.ascx.cs内)でが設定されている場所の周りのif挿入モードを削除することで、更新を機能させることができます。uri
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がDBの以前の値とは異なる値に設定されている場合、新しい画像は正常にアップロードされます。uriがDBの以前の値と同じである場合、 filecontentsとcontenttypeが変更されても、SQLServerはニュースを取得しません。
メタデータ:
...
[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を参照してください)
敬具、
ヨルダン