首页 > 解决方案 > 列错误中的冒号 ':' - 并非所有命名参数都已在 Nhibernate 中设置?

问题描述

我有一个表,其中包含有冒号的列。我试图找出一种在尝试查询数据库时忽略冒号作为参数的方法。我曾尝试使用 SetParameter 和 String.Format 但它不起作用。我也试图用 :: 和 \ 来逃避冒号,但没有运气。请参阅下面的示例

var result = session.CreateSQLQuery("Select id, [Results: A] as ResultsA, [Results: B] as ResultsB FROM Table").SetResultTransformer(Transformers.Alias.ToBean<TableObject>()).List<TableObject>();

标签: c#sqlasp.net-mvcnhibernatefluent

解决方案


colons你也必须逃跑\

尝试替换:\\:

或者,您可以@在字符串之前添加以避免\\

像这样:

var result = session.CreateSQLQuery(@"Select id, [Results\: A] as ResultsA, [Results\: B] as ResultsB FROM Table").SetResultTransformer(Transformers.Alias.ToBean<TableObject>()).List<TableObject>();

推荐阅读