实体框架中的字节组
问题描述:
我需要在实体框架表中存储一组字节。我需要像AB
存储东西在下面:实体框架中的字节组
byte[] a = new byte[]{0xFF,0xFF};
byte[] b = new byte[]{0x01,0x01};
List<byte[]> AB = new List<byte[]>{a,b};
但它静静地失败的字节列表和多维/参差不齐的字节数组。我假定他们不被支持。
什么是在EF数据库中存储一组字节的最佳方法(并且希望处理成本低廉)?
答
您可以将字节数组作为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,我不知道你的需要,所以我不知道它是否*根据你的情况太多了,实际上我不知道这是否是最好的方式,但是我知道的方式是:) –
将每个字节数组作为“blob”存储在不同行中怎么办? –
听起来很有趣,但我不认为我完全明白你的意思,你能通过答案简要地告诉我吗?我将如何为此制作课程? @AdilMammadov – Tyress
你可以将字节存储到一个实际的文件中,只需引用数据库中的位置 –