2016-08-18 3 views
0

Мне нужно сохранить группу байтов в таблице Entity Framework. Я должен был бы хранить что-то вроде AB в следующем:Группа байтов в Entity Framework

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

Вы можете просто хранить байты в фактическом файле и просто ссылаться на местоположение в DB –

ответ

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(); 
} 

Теперь у вас есть массивы байт в базе данных с их первичными ключами, и вы можете связать их с что вы хотите использовать их DataModelID s.

+0

О, я вижу, что ты имеешь в виду сейчас. Я на самом деле думал об этом, но я думал, что это слишком много ... но если это лучший способ, я думаю, я поеду с этим – Tyress

+1

@Tyress, я не знаю ваших потребностей, поэтому я не могу сказать, литер слишком много * в соответствии с вашей ситуацией, и на самом деле я не знаю, является ли это лучшим способом, но именно так я знаю :) –

Смежные вопросы