c# - 列错误中的冒号 ':' - 并非所有命名参数都已在 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>();
解决方案
colons
你也必须逃跑\
。
尝试替换:
为\\:
或者,您可以@
在字符串之前添加以避免\\
像这样:
var result = session.CreateSQLQuery(@"Select id, [Results\: A] as ResultsA, [Results\: B] as ResultsB FROM Table").SetResultTransformer(Transformers.Alias.ToBean<TableObject>()).List<TableObject>();