1

読み取り専用である必要があるいくつかのプロパティを持つビジネスオブジェクトがあると仮定します。例えば:

public class Order
{
     ...
     public DateTime OrderDate { get; set; }
     ...
     public decimal OrderTotal { get; set; }
}

また、OrderTotalは、アプリケーションで設定できないストアドプロシージャによって返される計算値であると想定します(OrderDateでは設定できます)。通常、パブリックセッターなしでOrderTotalを記述します。

public decimal OrderTotal { get; private set; }

ただし、そうすると、BLToolkitはこのプロパティの値を設定しなくなります。また、これを内部プロパティとして記述し、BLToolkitをフレンドアセンブリ(InternalsVisibleTo("BLToolkit.4, PublicKey=xyz"))として定義しようとしましたが、成功しませんでした。

BLToolkitで入力できるパブリックセッターなしでプロパティを作成するにはどうすればよいですか?

4

2 に答える 2

4

MapField属性にStorageプロパティがあり、おそらくそれが役立つでしょう

    public class Class1
    {
        int _int32 = 0;
        [MapField(Storage = "_int32")]
        public int Int32
        {
            get { return _int32; }
        }
    }
于 2012-03-12T11:43:35.973 に答える
0

私はあなたがそれをすることができるとは思いません、しかし私があなたを正しく理解するならばあなたはそれを必要としません。OrderTotalがストアドプロシージャから返される場合は、そのままにしておいても問題ありません。Orderクラスがデータベース内の実際のOrderテーブルを表していない限り、誤ってOrderTotalを更新しても問題はありません。

于 2012-03-10T10:50:32.870 に答える