实体框架6保留MathNet.Numerics矩阵

时间:2015-09-23 15:01:20

标签: c# entity-framework matrix entity-framework-6 mathnet

我们有一个包装MathNet.Numerics矩阵的类:

public class Matrix
{
    public MathNet.Numerics.LinearAlgebra.Matrix<double> _matrix { get; set; }

    public int? DatabaseId { get; set; }

    // ...
}

我们需要使用Entity Framework将此Matrix存储在数据库中。实体框架目前忽略了这个属性。我正在使用Fluent API映射,目前正在进行此设置:

modelBuilder.Entity<Matrix>()
       .HasKey(matrix => matrix.DatabaseId);

如何使用Entity Framework将Math.Net Numerics Matrix包装器保存在数据库中,包括_matrix属性?表结构应该是什么?(我正在使用Npgsql所以我必须自己构建表。)提前感谢。

1 个答案:

答案 0 :(得分:1)

您可能需要某种代理才能以合理的方式执行此操作,因此它实际上会将字符串或二进制blob写入数据库(而不是尝试分解类型及其成员)。

例如,您可以将其序列化为MatrixMarket格式(字符串,可选地压缩为二进制流;非常简单,但您可能会失去一些精度),或MATLAB(二进制流;目前只有支持旧的Level-5格式。)