小编Ven*_*emo的帖子

使用nHibernate Criteria将字符串转换为bool

我有一个使用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在查询中工作?

谢谢

.net nhibernate casting criteria

6
推荐指数
1
解决办法
2270
查看次数

如何使用ASP.NET重定向到另一个页面?

我知道这是一个简单的问题,但我真的在Google上找不到任何东西.对不起,如果我没有正确搜索.我创建了2页,在第一页中我有一个按钮.
我应该在C#代码中写什么来改变以在第二页上重定向我?
我通常知道我在C#的方式,但我是ASP的新手.

.net c# asp.net button

6
推荐指数
1
解决办法
4万
查看次数

从请求中接受预定义的一组无害HTML标记有多安全?

我作为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),altsrc(对img)

而下面的CSS规则:
color,font,font-size,font-weight,font-style,text-decoration

这些内容涵盖了格式化所需的所有内容,并且(据我所知)不会带来任何安全风险.基本上,良好的执行和缺乏任何布局样式可以防止任何人伤害网站的布局.禁止脚本标记和类似内容会阻止XSS.
(一个例外:也许我应该允许width/ height在图像的预定义范围内.)

其他优点:这些东西可以节省我编写/寻找BBCode-Html转换器的需要.

你怎么看?
这是安全的事吗?

(正如我所见,StackOverflow还允许在"关于我"字段中使用一些基本的HTML,所以我认为我不是第一个实现它的人.)

编辑:

我找到了这个答案,解释了如何相当容易地做到这一点.
当然,没有人应该考虑使用正则表达式.

问题本身与任何语言或技术无关,但如果您想知道,我在ASP.NET中编写此应用程序.

html tags security tinymce

6
推荐指数
1
解决办法
451
查看次数

C++中的覆盖函数不起作用

#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

c++ polymorphism inheritance overriding function

6
推荐指数
3
解决办法
1663
查看次数

如何获得使用递归的警告?

嵌入式软件开发的一些规则集和指南完全禁止递归。我使用arm-none-eabi-gcc基于 ARM Cortex-M4 的微控制器。

我正在寻找一个静态分析工具,它会警告我在代码中使用递归。我对此类工具的经验很少。是否可以为此使用 clang-tidy 或 clang 静态分析器?如果是,我如何配置它们以警告递归?

(快速查看gcc 选项摘要告诉我,仅 gcc 无法做到这一点。)

笔记:

  • 请不要告诉我“只是不要递归”。代码库很大,而不是我一个人。我希望能够证明其中没有递归。
    (这就像说“只是不要取消引用空指针”。虽然没有人故意这样做,但存在工具是为了验证它不会发生。)

c recursion gcc clang

6
推荐指数
1
解决办法
1229
查看次数

我应该使用哪个ORM而不是Linq到Sql?

我正在将CMS作为我的业余爱好项目.因为我没有得到报酬,时间不是很重要,我渴望建立一个设计良好的系统.

我有一组业务类负责主逻辑,他们通过接口从数据库获取数据,数据提供者(可以实现接口)可以从配置中设置.

目前我使用LINQ to SQL作为我的数据访问层,但是我对这个主题的阅读越多,我就越相信我应该使用更高级的ORM,因为LINQ to SQL不支持一些非常有用的东西.有利于应用程序的整体性能.例如,缓存和持久性.(我读过NHibernate,例如,只在必要时才咨询数据库,否则它只是从缓存中获取数据. - 这很好,因为平均而言,网站几天都没有获得新内容,所以代替通过在每个请求上从数据库中读取来浪费性能,从缓存中提供服务就好了.)

我正在考虑一些选项,并想知道我该怎么办.

  1. 为我的业务类编写自己的持久性逻辑,并继续使用LINQ to SQL.
  2. 直接使用NHibernate,或通过Castle ActiveRecord或Fluent NHibernate
  3. 使用其他一些ORM

我最喜欢的选择是第二个,因为NHibernate比我需要的更强大,而ActiveRecord似乎隐藏了大部分的复杂性.(顺便说一句,我也打算使用Castle Windsor.)

唯一的问题是,我找不到有关这些工具性能的任何信息.我花了几个小时谷歌搜索(和binging(我也在这个网站上看),发现了不少文章和博客文章,但没有一个人谈到性能.

这会比当前的解决方案更好,还是应该使用完全不同的任务?

提前致谢!

.net c# orm

5
推荐指数
1
解决办法
757
查看次数

如何微调FluentNHibernate的自动映射器?

好的,昨天我设法获得了NHibernate和FluentNHibernate的最新主干版本,以便与我最新的小项目一起工作.(我正在开发一个bug跟踪应用程序.)我使用Repository模式创建了一个很好的数据访问层.

我认为我的实体并不特别,而且随着ORM目前的成熟,我不想手工制作数据库.因此,我选择使用FluentNHibernate的自动映射功能,将NHibernate的"hbm2ddl.auto"属性设置为"create".

它真的像一个魅力.我将NHibernate配置放在我的app域的配置文件中,进行设置,并开始使用它.(暂时,我只创建了一些单元测试.)它创建了数据库中的所有表,以及我需要的所有表.它甚至正确地映射了我的多对多关系.

但是,有一些小故障:

  • DB中创建的所有列都允许为null.我知道它无法预测哪些属性应该允许null,哪些不应该,但至少我想告诉它它应该只允许null在.NET中有意义的那些类型(例如非-nullable值类型不应该允许null).
  • 它创建的所有nvarchar和varbinary列的默认长度都是255.我希望将它们放在max而不是它.

有没有办法告诉自动映射器上面的两个简单规则?

如果答案为否,如果我修改它创建的表,它会正常工作吗?(所以,如果我设置一些列不允许为null,并为其他一些更改允许的长度,它会正确地与它们一起工作吗?)

最终编辑:非常感谢所有匆匆离去并帮助过的人.我对Fluent的所有问题现在都解决了.

.net nhibernate orm nhibernate-mapping fluent-nhibernate

5
推荐指数
1
解决办法
2601
查看次数

如何获得文件扩展名的Qt图标(QIcon)

我正在开发一个需要显示与不同文件类型相关联的图标的应用程序.
例如,对于.doc扩展,我需要它才能显示Microsoft Word图标.

题:

我怎么能以某种方式使用QT sdk从系统中获得QIcon

谢谢.

user-interface icons qt qt4

5
推荐指数
1
解决办法
4161
查看次数

如何优化基于QGraphicsView的应用程序的性能?

我有一个基于Qt Graphics View框架的应用程序.
这是一个拼图游戏,它基本上将像素图切割成较小的像素图(拼图)并将其显示为QGraphicsItems中的s QGraphicsView.我希望这款应用能够在智能手机和平板电脑上运行.(它已经在诺基亚N900和一些Symbian手机上运行.尚未针对Symbian ^ 3进行优化.)
来源是Gitorious.

该项目继承QGraphicsItemQObject,并有Q_PROPERTY对宏pos()rotation()QGraphicsItem,以实现与Qt的动画框架动画它们.
我对项目执行转换,例如缩放和旋转(后者仅在开发中的多点触控分支中),我也使用QGraphicsDropShadowEffect它们.

我使用a QGLWidget作为视口,QGraphicsView以便为应用程序启用OpenGL加速.

问题在于,尽管采用OpenGL加速,但应用并不流畅.(特别是动画,特别是因为我将旋转变换添加到多点触控分支.)显示的图形项目不多,并且没有3D操作或任何严重的,只有2D绘图.
我根本不是图形专家,所以我不知道为什么这个应用程序运行缓慢.我见过其他比较复杂的游戏比这更顺畅.

秘密是什么?我怎么能优化这个应用程序?

opengl performance qt qt4 qgraphicsview

5
推荐指数
1
解决办法
6535
查看次数

在开发XNA应用程序时,如何避免频繁的int/float/double强制转换?

我正在使用XNA Framework为Windows Phone 7(Mango)制作一个简单的2D游戏.

我做了以下观察:

  • 大多数绘图操作都接受floats
  • SpriteBatch.Draw接受Rectangle使用ints的
  • Math班接受doubleS作为参数,还返回doubles ^

所以我的代码充满了ints,floats和doubles 之间的类型转换.这是一个很多的类型.

有什么方法可以摆脱它们,或者我应该不关心这个?

此外,这些类型转换是否会带来可衡量的性能损失?

.net c# xna windows-phone-7 windows-phone-7.1

5
推荐指数
1
解决办法
1249
查看次数