Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模型和表上的值一直显示为空_C#_Sql_Ado.net - Fatal编程技术网

C# 模型和表上的值一直显示为空

C# 模型和表上的值一直显示为空,c#,sql,ado.net,C#,Sql,Ado.net,我有一个名为PCRStatusLog的表,其中有一列名为PromoteDate。此列提供excel工作表中的数据从暂存发送到主数据库的日期。这是一个新列,尚未使用,因此对于大多数记录,它为空,但我们需要将此列的数据显示到我们的webapp。大多数这样做的逻辑已经存在,并且模型是从VisualStudio数据库中的EF Designer生成的ADO.NET实体模型 在表中,PromoteDate为DATETIME且可为空(SQL Server),表的模型如下所示: public parti

我有一个名为
PCRStatusLog
的表,其中有一列名为
PromoteDate
。此列提供excel工作表中的数据从暂存发送到主数据库的日期。这是一个新列,尚未使用,因此对于大多数记录,它为空,但我们需要将此列的数据显示到我们的webapp。大多数这样做的逻辑已经存在,并且模型是从VisualStudio数据库中的EF Designer生成的ADO.NET实体模型

在表中,
PromoteDate
DATETIME
且可为空(SQL Server),表的模型如下所示:

    public partial class PCRStatusLog
    {
        // ... list of fields and properties
        public Nullable<System.DateTime> PromoteDate { get; set; }
    }
它获取对象上的所有属性,所有内容看起来都正确,并且匹配数据库中的内容,除了这个PromoteDate属性

我错过什么了吗


请注意,此模型中的所有其他字段都有效,所有其他字段都显示数据库中的数据,这一个字段是唯一不起作用的字段。

我从这里开始:Change
var promoteDateQuery=(来自providerMasterContext.PCRStatusLogs中的psl,其中psl.BulkUploadID==item.FileID选择psl).FirstOrDefault();
to…(为了清晰起见,在下一个注释中继续)
var promoteDateQuery=(来自providerMasterContext.PCRStatusLogs中的psl).ToList();
这是一个临时更改,只是为了测试。查看
promoteDateQuery
中的结果,看看您的已知实例是否存在以及它是否有日期。您甚至可以这样做:
var promoteDateQuery=(来自providerMasterContext.PCRStatusLogs中的psl,其中psl.PromoteDate!=null)。ToList()
基本上,强制返回你想要的结果,看看你是否得到它。这只是一种解决问题并缩小问题范围的方法。
public List<PCRTracking> GetPCRTrackingDetails()
        {

            //...
            List<PCRTracking> pcrDetails = (from bulk in providerMasterContext.BULK_UPLOADS
                                            join ps in providerMasterContext.PROCESSSTATUS on bulk.ProcessStatusID equals ps.ProcessStatusID
                                            join p in providerMasterContext.PLANs on bulk.PlanCode equals p.PlanCode
                                            where bulk.CreateDate > compDateTime
                                            orderby bulk.BulkUploadID descending
                                            select new PCRTracking
                                            {
                                                FileID = bulk.BulkUploadID,
                                                FileName = bulk.BulkUploadActualFileName,
                                                PlanName = p.PlanCode,
                                                FileStatus = string.Empty,
                                                RecordsSubmitted = 0,
                                                RecordsFailed = 0,
                                                ValidationStatusReports = string.Empty,
                                                ErrorMessage = string.Empty,
                                                Submitter = bulk.SubmissionByID,
                                                SubmitterName = bulk.SubmissionByName,
                                                SubmitDate = (DateTime)bulk.SubmissionDateTime
                                            }).ToList<PCRTracking>();

            foreach (PCRTracking item in pcrDetails)
            {
                var promoteDateQuery = (from psl in providerMasterContext.PCRStatusLogs
                                        where psl.BulkUploadID == item.FileID
                                        select psl).FirstOrDefault();

                item.PromoteDate = promoteDateQuery.PromoteDate;
                //... rest of the code doesn't make use of PromoteDate
// from the Main method of a test console project
            var providerMasterContext = new BulkPCRDAL().providerMasterContext;
            var query =(from psl in providerMasterContext.PCRStatusLogs
               where psl.BulkUploadID == 43
               select psl).FirstOrDefault();

            foreach(var prop in query.GetType().GetProperties())
            {
                Console.WriteLine(prop.GetValue(query));
            }
            Console.ReadLine();