按日期从索引视图中排除

比特损失

活跃成员
已加入
2016年12月10日
留言内容
35
编程经验
Beginner
在我的数据模型中,我列出了工作清单。当前,作业只有两个州未开发票或未开发票。区别在于发票日期。空缺职位的发票日期为空。

在我的索引视图中,我想启用福彩12选5走势图选项以仅查看打开的作业。通常,在这种情况下,我对封闭的工作不那么感兴趣。虽然所有工作我都可以从其他角度更相关地查看。

在我的SQL表中,EF插入的占位符值为1/01/0001 12:00 AM。我可以在此处更改数据模型以允许为null,但由于我在第一年就没有工作,所以看不到这一点足以达到目的。

我正在努力了解如何编写Lambda语句以排除日期不等于此默认值的任何条目。

我试过了:
C#:
[COLOR=blue]public[/COLOR] [COLOR=blue]async[/COLOR] [COLOR=#2b91af]Task[/COLOR]<[COLOR=#2b91af]IActionResult[/COLOR]> Index()
       {
           [COLOR=blue]var[/COLOR] EVAContext = _context.Job
               .Include(j => j.Site)
                   .ThenInclude(j => j.WaterBodys)
                      [COLOR=green]// .ThenInclude(j=>j.WBName)[/COLOR]
               .AsNoTracking()
               .SingleOrDefaultAsync(j=>j.InvoiceDate==[COLOR=blue]null[/COLOR]);


[COLOR=blue]return[/COLOR] View([COLOR=blue]await[/COLOR] EVAContext.ToListAsync());

尽管这是胡说八道,却在ToListAsync上推了福彩12选5走势图错误。

C#:
[COLOR=blue]var[/COLOR] EVAContext = _context.Job
              .Include(j => j.Site)
                  .ThenInclude(j => j.WaterBodys)
                     [COLOR=green]// .ThenInclude(j=>j.WBName)[/COLOR]
              .AsNoTracking()
              .SingleOrDefaultAsync(j=>j.InvoiceDate!=1/1/0001 etc);
                      
                      
            
 
          [COLOR=blue]return[/COLOR] View([COLOR=blue]await[/COLOR] EVAContext.ToListAsync());
这似乎是正确的...除非这给了我福彩12选5走势图错误,告诉我我不能在发票日期对帐单。如何排除不是1/1/0001等的日期?
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
为什么要呼叫SingleOrDefaultAsync?该方法有什么作用?那是你真正想做的吗?

至于您的过滤器,如果您已正确设计数据库,则第福彩12选5走势图代码段应正确。使用占位符日期只是一种不好的做法。如果没有日期,则应该没有日期。

如果您要坚持糟糕的数据库设计,那么您实际上需要为该比较提供福彩12选5走势图DateTime值。 C#中没有诸如DateTime文字之类的东西,因此您需要构造福彩12选5走势图适当的DateTime值。
 

比特损失

活跃成员
已加入
2016年12月10日
留言内容
35
编程经验
Beginner
为什么要呼叫SingleOrDefaultAsync?该方法有什么作用?那是你真正想做的吗?

至于您的过滤器,如果您已正确设计数据库,则第福彩12选5走势图代码段应正确。使用占位符日期只是一种不好的做法。如果没有日期,则应该没有日期。

如果您要坚持糟糕的数据库设计,那么您实际上需要为该比较提供福彩12选5走势图DateTime值。 C#中没有诸如DateTime文字之类的东西,因此您需要构造福彩12选5走势图适当的DateTime值。

感谢您的批评。

我在学习。我不是说我是专家。通过复制教程中的示例并进行调整以适合我的应用程序,我正在学习。我会一直正确吗?不,这就是论坛的目的。

我不确定“单一或默认异步”功能是什么。我认为从我读到的内容来看,这与Core中的异步代码处理有关。但是我可能误会了。

添加在模型中具有null更好,但没有帮助。

所以我应该为空。这对于这种情况非常有用。但是,我将遇到的每福彩12选5走势图问题都视为学习的机会。设置为null可以解决此问题,但仍然无法回答原始问题。

想象一下,在现实世界中,我想查看当前的财务年度数据。我可能想在代码中注入福彩12选5走势图日期,以仅返回某个日期之后的记录,或者我可能想排除特定日期范围内的记录。通过解释我的简单询问,这一切都是可能的。

就像我说的那样,我感谢对日期不为空的批评。我在设置中忽略了它。但这不应该成为福彩12选5走势图麻烦事,因为毕竟使用日期毕竟是福彩12选5走势图常见的数据库问题,或者是否存在我在教程或几本书中没有看到的替代方法(但正在慢慢阅读)?
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,566
地点
悉尼,澳大利亚
编程经验
10+
我会一直正确吗?不,这就是论坛的目的。

我不确定“单一或默认异步”功能是什么。我认为从我读到的内容来看,这与Core中的异步代码处理有关。但是我可能误会了。
论坛不是您的首选。 VS有福彩12选5走势图“帮助”菜单是有原因的。为什么不使用该“帮助”菜单甚至F1键来打开文档并阅读该方法(实际上是您正在使用但不熟悉的任何类型或方法)呢?文档不是专门为初学者编写的,因此您不会总是了解它,但是您应该始终先阅读,然后再提问。

有四种类似的方法-First,FirstOrDefault,Single和SingleOrDefault-以及在某些情况下,它们的异步形式。忽略异步部分,在任何给定情况下使用这四种方法中的哪一种选择实际上都是非常简单的。没有任何一种最佳选择的情况。

第一:从必须包含至少福彩12选5走势图项目的列表中获取第一项。
FirstOrDefault:从列表中获取第福彩12选5走势图项目;如果没有任何项目,则返回null。
单项:从列表中获取必须包含福彩12选5走势图且只有福彩12选5走势图项目的唯一项目。
SingleOrDefault:从列表中获取唯一福彩12选5走势图不能包含多个项目的项目,如果没有项目,则为null。

鉴于您随后要调用ToListAsync,因此您很明显期望可能会有福彩12选5走势图以上的项目,因此没有适合使用Single方法的项目。如果可能没有项目,则调用FirstOrDefault(或FirstOrDefaultAsync),否则调用First(或FirstAsync)。
添加在模型中具有null更好,但没有帮助。
很有帮助如果表中的某个列在概念上不能容纳任何数据,则该列实际上应该不容纳任何数据,即它应该可以为空。如果该列是可为空的,则只需在使用它之前测试null。在许多情况下,此类数据将自动显示为空白,因此无需进行测试。例如,ASP.NET MVC模型联编程序将在视图中自动显示空字符串以获取空值,而视图中的空字符串将在控制器操作中自动映射回空值。
想象一下,在现实世界中,我想查看当前的财务年度数据。我可能想在代码中注入福彩12选5走势图日期,以仅返回某个日期之后的记录,或者我可能想排除特定日期范围内的记录。通过解释我的简单询问,这一切都是可能的。
就像我说的那样,C#中没有诸如DateTime文字之类的东西。您正在尝试在LINQ查询中获取原义的DateTime值,但不能这样做。如前所述,您需要构造福彩12选5走势图DateTime值并使用它。您可以声明福彩12选5走势图DateTime变量并将其初始化,然后在LINQ查询中使用该变量,也可以直接使用相同的表达式。如果您喜欢学习的机会,我将留给您使用“帮助”菜单打开MSDN文档,找到有关DateTime类型的主题,并阅读有关如何构造值的信息。 :)
 

比特损失

活跃成员
已加入
2016年12月10日
留言内容
35
编程经验
Beginner
感谢您提供更好的答案。

我确实发现帮助文件令人困惑,并且通常不是论坛是我的首要问题,我通常会在互联网上寻找与我所寻找的相似的东西。没有帮助的是不确定外观方向。这也许是整个学习过程中最令人沮丧的部分。我发现很难理解这种语言。没关系。我不是程序员,我只是福彩12选5走势图有天赋的技术用户。

如果我在福彩12选5走势图更有利可图的行业工作,那么我将不必在这个领域那么努力。但是需求必须。我想有点像您自己决定自己盖房子。

再次感谢
 

比特损失

活跃成员
已加入
2016年12月10日
留言内容
35
编程经验
Beginner
只是另福彩12选5走势图注释或通过评论。我面临的一些问题并不是我自己的理解或理解。我发现的是,这些教程经常假定具有先验知识,而这些知识在较旧版本的教程中会得到更好的解释。仅此一项就很困难,因为有时为3.5清楚地说明的概念对于5.0来说是完全缺失的,依此类推。
 
最佳 底部