从天蓝色表中读取行时为空值

时间:2020-03-19 12:14:49

标签: azure azure-tablequery

我正在尝试从azure存储表中获取所有行,但是当我显示它们时,除 PartitionKey和RowKey为null或0。我丢失了某些东西还是做错了什么,导致所有值无法正确读取?

这是我用来获取所有数据的代码。

 List<Employe> employeList = new List<Employe>();
 TableQuery<Employe> query = new TableQuery<Employe>();
 employeList = table.ExecuteQuery(query).ToList();

这是模型。

class Employe:TableEntity
    {
        public string prenume { get; set; }
        public string functie  { get; set; }
        public int salar_baza { get; set; }
        public int retineri { get; set; }
        public int spor { get; set; }
        public int total_brut { get; set; }
        public int brut_impozabil { get; set; }
        public int impozit { get; set; }
        public int cas { get; set; }
        public int cass { get; set; }
        public int virat_card { get; set; }
        public  int premii_brute { get; set; }

        public Employe()
        {
        }
        public Employe(string nr_crt, string name,string prename,string function, int salarBaza,int retinere,int sporuri,int premiu_burt)
        {
            PartitionKey = nr_crt;
            RowKey = name;
            this.prenume = prename;
            this.functie = function;
            this.salar_baza = salarBaza;
            this.retineri = retinere;
            this.spor = sporuri;
            this.premii_brute = premiu_burt;

            this.total_brut = salarBaza+(salarBaza*(sporuri/100))+premiu_burt;
            this.cas = (25/100)*total_brut;
            this.cass = (10/100)*total_brut;
            this.brut_impozabil = total_brut-cas-cass;
            this.impozit = (10/100)*brut_impozabil;
            this.virat_card =total_brut-impozit-cas-cass-retinere;
        }
    }

1 个答案:

答案 0 :(得分:1)

我自己还没有测试过,但是我很确定这是适用的:

在使用TableQuery及其内置的反序列化器时,它将使用无参数构造函数public Employe()创建一个新的空对象。然后,它尝试查找匹配的属性,但查找其名称。但是,由于所有属性的名称都与表存储中的值不同,因此不会设置任何属性。

因此,可以重命名属性以匹配存储(例如,将public string prenume重命名为public string prename),或者使用属性上的注释,例如these