我在映射程序的结果集时遇到错误,无法找到确切的解决方案。有人可以帮我这样做。
编码我正在使用的内容:DateOfBirth = DateOfBirth.Value == null ? 0 : Convert.ToDateTime(DateOfBirth.Value),
DateofBirth的数据类型是DateTime。
我得到的错误是“无法确定条件表达式的类型,因为'int'和'System.DateTime'之间没有隐式转换”
答案 0 :(得分:1)
没有从0
转换为DateTime
。因此无法确定?:
运算符的结果类型。在一个案例中为int
,在另一个案例中为DateTime
。这就是编译器在错误消息中告诉你的内容。
如果您真的想要删除null
条目,请使用有效的DateTime
值(例如DateTime.MinValue
)作为后备。
此外,您可能希望使用??
运算符:
DateTime? DateOfBirth = //... can be null or not
DateTime myDateOfBirth = DateOfBirth ?? DateTime.MinValue;
当然,null
可能是缺失值的更好表示......
答案 1 :(得分:0)
此代码说:
如果DateOfBirth.Value为NULL则 DateOfBirth =整数零 其他 DateOfBirth =将DateOfBirth转换为DateTime
所以,如果DateOfBirth在开头是null,那么你试图将它设置为整数零,这是不好的
答案 2 :(得分:-2)
如果您尝试比较DateTime。尝试转换成这样的东西
class AttachmentPolicy < ApplicationPolicy
class Scope < Scope
def resolve
# user can see his attachments and attachments without owner
Attachment
.left_outer_joins(comment: [task: [:project]])
.where('projects.user_id = ? OR comment_id IS NULL', user.id)
end
end
def update?
# if attachment doesnt have owner - anyone can change it
record.comment.nil? ? true : owner?
end
end
您无法将其与INT进行比较,但您可以将其与字符串
进行比较