c# - Entity Framework 6 保留 MathNet.Numerics 矩阵

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

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

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

    public int? DatabaseId { get; set; }

    // ...
}

我们需要使用 Entity Framework 将此矩阵 存储在数据库中. Entity Framework 目前忽略此属性。我正在使用 Fluent API 映射,目前已设置:

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

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

最佳答案

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

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

关于c# - Entity Framework 6 保留 MathNet.Numerics 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743053/

相关文章:

C#构造函数帮助

c# - EF6 代码优先 "Foreign Key Multiplicity is not valid in Role"

matrix - 反转或点 kxnxn 矩阵的快速方法

Python:np.linalg.eigvalsh返回负特征值

c# - 回到第一行? C#

c# - 使用状态模式的分层状态机的最佳实践是什么?

c# - 不保存到 HDD 的临时文件

c# - 执行自定义查询—— Entity Framework

c# - 匹配评论相同餐厅的用户

c++ - OpenGl 绕点旋转