1

私は、データベースにドル額を整数(つまり、$ 10.99 == 1099)として格納する既存の[不十分に設計された]データベースを使用しています。エンティティクラスでこの値を小数として処理して、消費するコードが変換を行う必要がないようにします。

値を整数から10進数に変換してから、データ注釈またはFluent構成を使用して元に戻す方法はありますか?

その間、私は本質的に整数プロパティを変換を処理するdecimalプロパティで「ラップ」するハックを使用しています。

    [Column("intTotal")]
    public virtual int TotalAsInt { get; set; }

    [NotMapped]
    public virtual decimal Total
    {
        get { return (decimal) TotalAsInt/100; }
        set { TotalAsInt = (int)(value*100); }
    }
4

1 に答える 1

1

値を整数から 10 進数に変換してから、Data Annotations または Fluent 構成を使用して元に戻す方法はありますか?

私が知る限りではありません。あなたのソリューションは良さそうです。

TotalAsIntプロパティにすることで非表示にすることはできますが、や などのメソッドprivateで使用することはできません。IQueryableWhereSelect

したがって、データベースを修正できるまで、私はあなたのソリューションを使用します。

于 2012-11-19T13:53:06.360 に答える