我正在尝试累积可以用作另一个数据库之间的引用的数据,但是,当我尝试在行内收集数据并将其存储在数组中时,出现此错误:


  CS0122:由于其保护级别,无法访问“ System.Nullable.value”


我当前的代码是:

    short pay_termsId = 0;
    var tbl_sales_del = (from c in db.tblacc_sales_tran_del
                         where c.TransactionNo == tranNo select c)
                        .FirstOrDefault();
    if (tbl_sales_del != null
                   && !string.IsNullOrEmpty(tbl_sales_del.Vatdiscount.ToString()))
    {
        pay_termsId = tbl_sales_del.PaymentTermsID.value;
    }


我尝试var pay_termsId,但收到相同的错误。有人可以参考我任何可能有用的方法来解决此问题吗?非常感激。

最佳答案

您需要查看您的类定义。您可能需要将PaymentTermsID的成员保护级别更改为public

另外,如果要获取null值,则需要执行类似的操作

pay_termsId = tbl_sales_del.PaymentTermsID.value ?? 0;


或将pay_termsId设置为short?类型

08-27 06:23