【发布时间】:2015-09-23 15:01:19
【问题描述】:
我们有一个包装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,所以我必须自己构建表格。)提前致谢。
【问题讨论】:
-
你知道这在内部是否总是一个密集矩阵,或者它也可以是例如稀疏还是对角线?
-
我会准备一个
byte[](代表Matrix<double>)的序列化属性,这意味着您将其保存为数据库中的二进制文件。您需要另一个未映射的属性(甚至是辅助方法)来将byte[]解析/反序列化为Matrix<double>。但是,不能在 Linq-To-Entity 查询中使用反序列化的属性或辅助方法。
标签: c# entity-framework matrix entity-framework-6 mathnet-numerics