2016-08-18 69 views
0

我需要在實體框架表中存儲一組字節。我需要像AB存儲東西在下面:實體框架中的字節組

byte[] a = new byte[]{0xFF,0xFF}; 
byte[] b = new byte[]{0x01,0x01}; 
List<byte[]> AB = new List<byte[]>{a,b}; 

但它靜靜地失敗的字節列表和多維/參差不齊的字節數組。我假定他們不被支持。

什麼是在EF數據庫中存儲一組字節的最佳方法(並且希望處理成本低廉)?

+0

將每個字節數組作爲「blob」存儲在不同行中怎麼辦? –

+0

聽起來很有趣,但我不認爲我完全明白你的意思,你能通過答案簡要地告訴我嗎?我將如何爲此製作課程? @AdilMammadov – Tyress

+0

你可以將字節存儲到一個實際的文件中,只需引用數據庫中的位置 –

回答

1

您可以將字節數組作爲blob存儲在數據庫中。創建一個模型,如:

public class DataModel 
{ 
    public int DataModelID { get; set; } 
    public byte[] Data { get; set; } 
} 

然後你就可以將每個字節數組作爲行存儲在DataModel表:

// Initialize data 
List<DataModel> dataModels = new List<DataModel> 
{ 
    new DataModel { Data = new byte[]{0xFF,0xFF} }, 
    new DataModel { Data = new byte[]{0x01,0x01} } 
}; 

// Add it to database 
using(MyContext context = new MyContext()) 
{ 
    context.DataModels.Add(dataModels); 
    context.SaveChanges(); 
} 

現在,你有你的字節數組與他們的PK數據庫,你可以用它們關聯你想要什麼使用他們的DataModelID s。

+0

哦,我看到了什麼你是說現在。我真的想過這個,但我認爲這有點太多了...但如果這是最好的方式,我想我會去這 – Tyress

+1

@Tressress,我不知道你的需要,所以我不知道它是否*根據你的情況太多了,實際上我不知道這是否是最好的方式,但是我知道的方式是:) –