Bltoolkit: общественные свойства только для чтения

StackOverflow https://stackoverflow.com//questions/9633095

  •  10-12-2019
  •  | 
  •  

Вопрос

Предположим, у меня есть бизнес-объект, который имеет некоторые свойства, которые должны быть только для чтения.Например:

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

Также предполагают, что упорядоченность - это рассчитанное значение, возвращаемое хранимому ProC, которое не может быть установлено приложением (тогда как можно заказывать CARDDATE).Обычно я бы просто написал упорядоченность без общественного сеттера:

public decimal OrderTotal { get; private set; }
.

Однако, если я сделаю это BLToolkit, больше не будет установить значение этого свойства.Я также пытался написать это как внутреннюю собственность и определить Bltoolkit в качестве подруга (Генеракодицетагкод) без успеха.

Как я могу написать недвижимость без публичного сеттера, который все еще может быть заполнен Bltoolkit?

Это было полезно?

Решение

There is a Storage Property on the MapField Attribute, maybe that will help

    public class Class1
    {
        int _int32 = 0;
        [MapField(Storage = "_int32")]
        public int Int32
        {
            get { return _int32; }
        }
    }

Другие советы

I don't think you can do that, but if I understand you correctly you don't need it. If OrderTotal is returned from stored procedure than it is just fine if you leave it as it is. Unless Order class is representing the actual Order table in the database, you won't have any problem if you accidentally update OrderTotal.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top