2013-09-29 75 views
0

我在我的系統如何爲我的客戶類定義新類型的實體?

通常情況下,我宣佈類型使用實體框架代碼第一次整型,字符串,雙或其他表類(其他DbSet,我不知道這是什麼所謂的)

但現在,我創建了一個產品系統,內容產品照片,我也想將照片保存在數據庫中,我認爲可以將BitmapImage轉換爲byte[]以保存nvarchar [max]列

我不知道這是否可能...我想訪問照片列並返回一個BitmapImage

public BitmapImage Photo { get; set; } 

是否有可能爲BitmapImage實體創建一個轉換器?怎麼做?

對不起,我的壞表情......我初學Entify框架

+1

呃......爲什麼在EARTH上,你想把它轉換成一個'Byte []'然後到'NVarChar(MAX)'?請! [看看使用'System.IO.Stream'並將它們作爲FileStream存儲在數據庫中](http://stackoverflow.com/questions/10055280/sql-filestream-entity-framework-store-large-files)。不,這是不可能的。然而,您可以在您的視圖模型圖層中粘貼一個IValueConverter,或者更好。 – Aron

+1

如果您在窗口或頁面上使用IMAGE控件,它會自動將字節[]轉換爲圖像。因此,您可以將圖像作爲varbinary(MAX)存儲在數據庫中(如果使用MSSQL),並將其作爲Byte []直接綁定到Image控件。 – 2013-09-29 16:29:14

+0

@Aron對不起,我說,因爲我不知道我能做什麼。所以,我看到這個帖子,非常有趣!我會研究這個,非常感謝你!真的真的 – Lai32290

回答

0

MSSQL場

fldImage varbinary(MAX) Checked 

型號

public Byte[] myImage 
    { 
     get { return myModel.myImage; } 
     set 
     { 
      myModel.myImage = value; 
      NotifyPropertyChanged("Image"); 
     } 
    } 

綁定字節]對窗口圖像控制/頁面

<Image x:Name="myImage" 
     DataContext ="{Binding myDataContext}" 
     Source="{Binding Path=myImage}"/> 
相關問題