2

MathNet.Numerics行列をラップするクラスがあります。

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

    public int? DatabaseId { get; set; }

    // ...
}

これをEntity FrameworkMatrixを使用してデータベースに保存する必要があります。Entity Framework は現在、このプロパティを無視しています。Fluent API マッピングを使用しており、現在この設定を行っています。

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

Entity Framework を使用して、プロパティを含め、Math.Net Numerics Matrix ラッパーをデータベースに永続化するにはどうすればよい_matrixですか? テーブル構造はどうあるべきですか?(私はNpgsqlを使用しているため、自分でテーブルを作成する必要があります。) よろしくお願いします。

4

1 に答える 1

1

賢明な方法でこれを行うには、おそらく何らかのサロゲートが必要になるため、実際には文字列またはバイナリ blob をデータベースに書き込みます (型とそのメンバーを分解しようとするのではなく)。

たとえば、MatrixMarket形式 (文字列、オプションでバイナリ ストリームに圧縮されます。非常に単純ですが、精度が低下する可能性があります)、またはMATLAB (バイナリ ストリーム。現在は古いレベル 5 形式のみがサポートされています) にシリアル化できます。

于 2015-09-23T15:53:13.917 に答える