Entity Framework 中的字节组

Group of bytes in Entity Framework

我需要在 Entity Framework table 中存储一组字节。我需要在下面存储类似 AB 的内容:

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

但是对于字节列表和 multidimensional/jagged 字节数组,它会默默地失败。我假设它们不受支持。

在 EF 数据库中存储一组字节的最佳(并且希望处理成本低)方法是什么?

您可以将字节数组作为 blob 存储在数据库中。创建一个模型,如:

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

然后您可以将每个字节数组作为一行存储在 DataModel table:

// 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 已保存在数据库中,您可以使用它们的 DataModelIDs 将它们与您想要的内容相关联。