Domanda

Assumi che ho un oggetto business con alcune proprietà che dovrebbero essere letto solo.Ad esempio:

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

Supponiamo inoltre che OrderTotal sia un valore calcolato restituito da un Proce memorizzato che non può essere impostato dall'applicazione (mentre OrderDate può).Normalmente scriverò semplicemente l'ordineTotale senza un setter pubblico:

public decimal OrderTotal { get; private set; }
.

Tuttavia se lo faccio così BlToolkit non imposterà più il valore di questa proprietà.Ho già provato a scrivere questo come una proprietà interna e definire BlToolkit come assemblaggio di amici (InternalsVisibleTo("BLToolkit.4, PublicKey=xyz")) senza successo.

Come posso scrivere una proprietà senza un setter pubblico che può ancora essere popolato da BlToolkit?

È stato utile?

Soluzione

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; }
        }
    }

Altri suggerimenti

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top