Cómo convertir varBinary en imagen o video cuando se recupera de la base de datos en C #

Estoy usando Visual Studio 2010 (aplicación de escritorio) y LINQ to SQL para guardar archivos de imagen / video o audio en la base de datos en dataType VarBinary (MAX). Esto puedo hacer ... El problema es que no puedo obtenerlos y mostrarlos en xaml porque no puedo obtener la parte de conversión correcta. Esto es lo que tengo hasta ahora (aunque no funciona); private void bt_Click (remitente de objeto, RoutedEventArgs e) {databaseDataContext context = new databaseDataContext ();

        var imageValue = from s in context.Images
                            where s.imageID == 2
                            select s.imageFile;

        value = imageValue.Single().ToString();        
        //convert to string and taking down to next method to get converted in image
    }

    public string value { get; set; }


    public object ImageSource //taking from http://stackoverflow.com/
    {
        get
        {
            BitmapImage image = new BitmapImage();
            try
            {
                image.BeginInit();
                image.CacheOption = BitmapCacheOption.OnLoad;
                image.CreateOptions = BitmapCreateOptions.IgnoreImageCache;
                image.UriSource = new Uri(value, UriKind.Absolute);
                image.EndInit();

                Grid.Children.Add(image);
            }
            catch { return DependencyProperty.UnsetValue; } return image;
        }

    } 

¿Ni siquiera estoy seguro de si estoy en el camino correcto? ¿Y supongo que el video o el audio son métodos bastante similares?

Respuestas a la pregunta(4)

Su respuesta a la pregunta