我有一个使用Criteria的nHibernate查询,我试图在查询本身中将一个字符串转换为bool.我已经将字符串转换为int,并且运行良好("DataField"属性为"1"作为字符串):
var result = Session
.CreateCriteria<Car>()
.Add(Restrictions.Eq((Projections.Cast(NHibernateUtil.Int32,
Projections.Property("DataField"), 1))
.List<Car>();
tx.Commit();
Run Code Online (Sandbox Code Playgroud)
但我试图用bool做同样的事情,但我没有得到预期的结果:
var result = Session
.CreateCriteria<Car>()
.Add(Restrictions.Eq((Projections.Cast(NHibernateUtil.bool,
Projections.Property("DataField"), true))
.List<Car>();
tx.Commit();
Run Code Online (Sandbox Code Playgroud)
"DataField"是字符串"True",但结果为空列表,其中应包含100个元素,其中"DataField"属性字符串设置为"True".我已尝试使用字符串"true"和"1",但结果仍然是一个空列表.
[编辑]
如下面的评论,我可以检查字符串"True"或"False",但我会说这是一个比布尔值更普遍的问题.
请注意,这个想法是对数据进行某种键值表示,其中值可以是不同的数据类型.我需要值表来包含所有数据,因此将数据存储为字符串似乎是最干净的解决方案!
我已经能够使用上面的方法将int和double存储为字符串,并在查询中存储,但我没有成功使用相同的方法DateDime和Boolean.
对于DateTime,拥有实际的DateTime对象至关重要.
如何将从字符串转换为bool,并将字符串转换为DateTime在查询中工作?
谢谢
我知道这是一个简单的问题,但我真的在Google上找不到任何东西.对不起,如果我没有正确搜索.我创建了2页,在第一页中我有一个按钮.
我应该在C#代码中写什么来改变以在第二页上重定向我?
我通常知道我在C#的方式,但我是ASP的新手.
我作为Web开发人员学到的第一件事就是永远不会接受来自客户端的任何HTML.(也许只有我对它进行HTML编码.)
我使用输出HTML的WYSIWYG编辑器(TinyMCE).到目前为止,我只在管理页面上使用它,但现在我也想在论坛上使用它.它有一个BBCode模块,但似乎不完整.(BBCode本身可能不支持我想要的所有内容.)
所以,这是我的想法:
我允许客户端直接POST一些HTML代码.然后,我检查代码的完整性(良好格式)并删除所有基于预定义的允许标记和样式集不允许的标记,属性和CSS规则.
显然我会允许我使用的TinyMCE功能子集可以输出的东西.
我会允许以下标签:
span,sub,sup,a,p,ul,ol,li,img,strong,em,br
具有以下属性:
style(一切),href以及title(对于a),alt和src(对img)
而下面的CSS规则:
color,font,font-size,font-weight,font-style,text-decoration
这些内容涵盖了格式化所需的所有内容,并且(据我所知)不会带来任何安全风险.基本上,良好的执行和缺乏任何布局样式可以防止任何人伤害网站的布局.禁止脚本标记和类似内容会阻止XSS.
(一个例外:也许我应该允许width/ height在图像的预定义范围内.)
其他优点:这些东西可以节省我编写/寻找BBCode-Html转换器的需要.
你怎么看?
这是安全的事吗?
(正如我所见,StackOverflow还允许在"关于我"字段中使用一些基本的HTML,所以我认为我不是第一个实现它的人.)
编辑:
我找到了这个答案,解释了如何相当容易地做到这一点.
当然,没有人应该考虑使用正则表达式.
问题本身与任何语言或技术无关,但如果您想知道,我在ASP.NET中编写此应用程序.
#include <cstdio>
using namespace std;
class A {
public:
virtual void func() { printf("A::func()"); }
};
class B : public A {
public:
virtual void func() { printf("B::func()"); }
};
int main() {
A a = *(A *)new B();
a.func();
}
Run Code Online (Sandbox Code Playgroud)
问题很简单:为什么即使包含B类对象,也要a->func()调用类中的函数?Aa
嵌入式软件开发的一些规则集和指南完全禁止递归。我使用arm-none-eabi-gcc基于 ARM Cortex-M4 的微控制器。
我正在寻找一个静态分析工具,它会警告我在代码中使用递归。我对此类工具的经验很少。是否可以为此使用 clang-tidy 或 clang 静态分析器?如果是,我如何配置它们以警告递归?
(快速查看gcc 选项摘要告诉我,仅 gcc 无法做到这一点。)
笔记:
我正在将CMS作为我的业余爱好项目.因为我没有得到报酬,时间不是很重要,我渴望建立一个设计良好的系统.
我有一组业务类负责主逻辑,他们通过接口从数据库获取数据,数据提供者(可以实现接口)可以从配置中设置.
目前我使用LINQ to SQL作为我的数据访问层,但是我对这个主题的阅读越多,我就越相信我应该使用更高级的ORM,因为LINQ to SQL不支持一些非常有用的东西.有利于应用程序的整体性能.例如,缓存和持久性.(我读过NHibernate,例如,只在必要时才咨询数据库,否则它只是从缓存中获取数据. - 这很好,因为平均而言,网站几天都没有获得新内容,所以代替通过在每个请求上从数据库中读取来浪费性能,从缓存中提供服务就好了.)
我正在考虑一些选项,并想知道我该怎么办.
我最喜欢的选择是第二个,因为NHibernate比我需要的更强大,而ActiveRecord似乎隐藏了大部分的复杂性.(顺便说一句,我也打算使用Castle Windsor.)
唯一的问题是,我找不到有关这些工具性能的任何信息.我花了几个小时谷歌搜索(和binging(我也在这个网站上看),发现了不少文章和博客文章,但没有一个人谈到性能.
这会比当前的解决方案更好,还是应该使用完全不同的任务?
提前致谢!
好的,昨天我设法获得了NHibernate和FluentNHibernate的最新主干版本,以便与我最新的小项目一起工作.(我正在开发一个bug跟踪应用程序.)我使用Repository模式创建了一个很好的数据访问层.
我认为我的实体并不特别,而且随着ORM目前的成熟,我不想手工制作数据库.因此,我选择使用FluentNHibernate的自动映射功能,将NHibernate的"hbm2ddl.auto"属性设置为"create".
它真的像一个魅力.我将NHibernate配置放在我的app域的配置文件中,进行设置,并开始使用它.(暂时,我只创建了一些单元测试.)它创建了数据库中的所有表,以及我需要的所有表.它甚至正确地映射了我的多对多关系.
但是,有一些小故障:
有没有办法告诉自动映射器上面的两个简单规则?
如果答案为否,如果我修改它创建的表,它会正常工作吗?(所以,如果我设置一些列不允许为null,并为其他一些更改允许的长度,它会正确地与它们一起工作吗?)
最终编辑:非常感谢所有匆匆离去并帮助过的人.我对Fluent的所有问题现在都解决了.
我正在开发一个需要显示与不同文件类型相关联的图标的应用程序.
例如,对于.doc扩展,我需要它才能显示Microsoft Word图标.
题:
我怎么能以某种方式使用QT sdk从系统中获得QIcon
谢谢.
我有一个基于Qt Graphics View框架的应用程序.
这是一个拼图游戏,它基本上将像素图切割成较小的像素图(拼图)并将其显示为QGraphicsItems中的s QGraphicsView.我希望这款应用能够在智能手机和平板电脑上运行.(它已经在诺基亚N900和一些Symbian手机上运行.尚未针对Symbian ^ 3进行优化.)
来源是Gitorious.
该项目继承QGraphicsItem和QObject,并有Q_PROPERTY对宏pos()和rotation()的QGraphicsItem,以实现与Qt的动画框架动画它们.
我对项目执行转换,例如缩放和旋转(后者仅在开发中的多点触控分支中),我也使用QGraphicsDropShadowEffect它们.
我使用a QGLWidget作为视口,QGraphicsView以便为应用程序启用OpenGL加速.
问题在于,尽管采用OpenGL加速,但应用并不流畅.(特别是动画,特别是因为我将旋转变换添加到多点触控分支.)显示的图形项目不多,并且没有3D操作或任何严重的,只有2D绘图.
我根本不是图形专家,所以我不知道为什么这个应用程序运行缓慢.我见过其他比较复杂的游戏比这更顺畅.
秘密是什么?我怎么能优化这个应用程序?
我正在使用XNA Framework为Windows Phone 7(Mango)制作一个简单的2D游戏.
我做了以下观察:
floatsSpriteBatch.Draw接受Rectangle使用ints的Math班接受doubleS作为参数,还返回doubles ^所以我的代码充满了ints,floats和doubles 之间的类型转换.这是一个很多的类型.
有什么方法可以摆脱它们,或者我应该不关心这个?
此外,这些类型转换是否会带来可衡量的性能损失?