- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下查询有什么问题,我收到此错误:可空对象必须有一个值。
Dim subscriptionUsers = From inv In dataContext.Invoices.ToList Join u In dataContext.Users _
On inv.Subscription Equals u.Subscription _
Where inv.Id.Value = invoiceID _
And Not u.Fund.Title.Contains("AGM") _
And DirectCast(IIf(Not u.EndDate.HasValue, IIf(u.StartDate.Value <= inv.EndDate.Value, True, False), _
IIf((u.StartDate.Value >= inv.StartDate.Value And u.StartDate.Value <= inv.EndDate.Value) Or _
(u.EndDate.Value >= inv.StartDate.Value And u.EndDate.Value <= inv.EndDate.Value) Or _
(u.StartDate.Value < inv.StartDate.Value And u.EndDate.Value > inv.EndDate.Value), True, False)), Boolean) _
Group By Key = u.Fund.Title Into Group _
Select Fund = Key, UsersCount = Group.Count, Users = Group.ToList, _
SubFunds = (From a In dataContext.Allocations Where a.Fund.Title = Key Select a.Department.Title Distinct)
如果我删除条件中的 u.EndDate.Value 那么它工作正常。
这是堆栈跟踪:
在 System.Nullable1.get_Value()
2 $VB$It) 在 System.Linq.Enumerable.WhereEnumerableIterator
在 SDBReports.InvoiceAllocationReportUserControl._Lambda$__4(VB$AnonymousType_01.MoveNext()
2.Create[TSource](IEnumerable
在 System.Linq.Lookup1 源、Func
2 keySelector、Func2 elementSelector、IEqualityComparer
1 比较器) 在 System.Linq.GroupedEnumerable4.GetEnumerator()
2.MoveNext() 在 System.Linq.SystemCore_EnumerableDebugView`1.get_Items()
在 System.Linq.Enumerable.WhereSelectEnumerableIterator
附:我已使用 SPMetal 在 SharePoint 列表上生成实体类。
为了更清楚:
不要与 u.EndDate.Value 和 inv.EndDate.Value 混淆
这是 u.EndDate.Hasvalue 的真实部分:
IIf((u.StartDate.Value >= inv.StartDate.Value And u.StartDate.Value <= inv.EndDate.Value) Or _
(u.EndDate.Value >= inv.StartDate.Value And u.EndDate.Value <= inv.EndDate.Value) Or _
(u.StartDate.Value < inv.StartDate.Value And u.EndDate.Value > inv.EndDate.Value), True, False)
这是错误的部分
IIf(u.StartDate.Value <= inv.EndDate.Value, True, False)
最佳答案
使用If
而不是IIf
。这是短路的(就像 C# 的条件运算符),并且会起作用,因为条件仅在 if HasValue
为 True
. IIf
已弃用。切勿使用它。
此外,像 If(condition, True, False)
这样的表达式是无意义的。仅将其替换为条件
。
最后,您需要再次使用 AndAlso
而不是 And
,以免发生短路。事实上,总是在条件语句中使用 AndAlso
和 OrElse
。 仅在进行位运算时使用 And
和 Or
。
DirectCast
也是不必要的。
这给我们留下了一个更加简化的表达式:
If(Not u.EndDate.HasValue, u.StartDate.Value <= inv.EndDate.Value), _
(u.StartDate.Value >= inv.StartDate.Value AndAlso u.StartDate.Value <= inv.EndDate.Value) OrElse _
(u.EndDate.Value >= inv.StartDate.Value AndAlso u.EndDate.Value <= inv.EndDate.Value) OrElse _
(u.StartDate.Value < inv.StartDate.Value AndAlso u.EndDate.Value > inv.EndDate.Value))
但是这个表达式还是太复杂了。您应该将其拆分,但首先在查询中使用 Let
将可空值内的值分配给某个临时变量。
关于vb.net linq查询where子句中的iif条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7193997/
我正在处理一个庞大的 javascript 代码库,我正试图对其进行重组。我不是真正的专家,我只是开始研究良好的 JavaScript 编码实践。所以,我想做的一件事是将所有代码划分为模块。在这种特殊
这个问题在这里已经有了答案: How does an IIFE's being called immediately prevent it from polluting global scope?
我对 javascript 中的以下代码感到困惑。 var x=(function(){ var customObject = function(){}; customObject.proto
我的图书馆是一个像这样的 IIFE: (function () { win.global = global; }()); 在这个库中,我将我的代码组织成模块,这些模块看起来也像这样: var
base.html 文件中有一些逻辑。我想让它对应的 js 文件更简单,并把一些功能放在一边。 有没有办法访问 IIFE 内部的变量(main.js) 来自另一个 (additional.js)? b
为什么这个函数运行时没有用返回值初始化全局XYZ? "use strict"; XYZ = (function(){ var obj = {'a':1,'b':2,'c':3}; co
最近,当我试图了解更多有关 JavaScript 中的 IIFE 和模块的信息时我想到了一个问题,即 IIFE 如何在不立即制作模块的情况下制作模块调用该函数不会使其成为一个模块.. 任何人都可以与我
这个问题在这里已经有了答案: Are 'Arrow Functions' and 'Functions' equivalent / interchangeable? (4 个答案) 关闭 6 年前。
用法:IIF(条件表达式,为真时返回值,为假时返回值) <% Function IIf(bExp1, sVal1, 
我正在使用一些 javascript 函数来模拟 require 功能,例如: // We set up an object that will include all the public modu
我有一个工作代码循环遍历数组的行,然后将值存储到另一个数组中。实际上代码没有问题,但我正在努力提高我的技能并学习新技能 这是代码 Sub Test() Dim a, i As Long, j
我想使用来自 RxJS 的 iif 实用程序有条件地调度一些操作。问题是即使测试函数返回 false,也会调用 iif 的第二个参数。这会引发错误并且应用程序立即崩溃。我对 RxJS 的功能不熟悉,所
我想产生结果: table name: HWData policy number: number of residents: factor: 100
我是 JS 的新手。如果这个问题太天真了,请原谅我。 我正在使用这样的 IIFE: var App = (function() { var test = ''; var init =
(function (w, d, u) { /* Variable Conventions _*VAR*_ is html or class text*/ var wl = '^\\/
在我的服务器端页面上,我有一段旧脚本,我想修改它以在打开确认窗口之前测试字段是否为空。这就是我尝试的方法,添加 $(#hdfldRecId) 因为如果此字段为空,我不希望打开确认。 scrip
我正在尝试在 Microsoft SQL Server 2008 R2 中使用它: SET @SomeVar = @SomeOtherVar + IIF(@SomeBool, 'value whe
在编写 IIF 语句、表和下面给出的语句时出现错误。 陈述: SELECT IIF(EMP_ID=1,'True','False') from Employee; table : CREATE TAB
我正在阅读 article关于 IIFE,但认为它带来的主要值(value)是它为变量创建了隐私,在下面的代码中,如果将“i”放在 IIFE 中,则无法更改。但是命名空间呢?鉴于它们都在“计数器”范围
如何在 PowerShell 中创建带有内联 If 的语句(IIf,另请参阅: Immediate if 或 ternary If )? 如果您也认为这应该是 native PowerShell 函数
我是一名优秀的程序员,十分优秀!