我收到以下错误:
Cannot use empty object or column names. Use a single space if necessary.
Msg 1038, Level 15, State 3, Line 1
,查询命令如下:
SELECT TOP 100 PERCENT
[].[cms_page].[pa_id], [].[cms_page].[pa_key],
[].[cms_page].[pa_title], [].[cms_page].[pa_keywords],
[].[cms_page].[pa_description], [].[cms_page].[pa_header],
[].[cms_page].[pa_created], [].[cms_page].[pa_modified],
[].[cms_page].[pa_language] FROM [cms_page]
WHERE
[cms_page].[pa_key] = @pa_key0
ORDER BY
[pa_id] ASC;
确实很奇怪。为什么会这样?我正在使用SubSonic 2.1。
的ConnectionString:
<add name="OCDB" connectionString="Network Library=DBMSSOCN;Data Source=127.0.0.1,1433;Initial Catalog=test_db;User ID=test;Password=testpwd"/>
编辑:那么解决方案只是简单地生成和重建数据访问层,我很高兴。
答案 0 :(得分:1)
您似乎使用了3部分名称,其中一部分为空,即'[]。'
答案 1 :(得分:0)
看起来好像是使用空表架构构造查询文本。
那些空的[]方括号应包含类似“dbo”的内容,以使查询在语法上有效。我不太了解SubSonic会给你一个代码示例。
答案 2 :(得分:0)
我不熟悉SubSonic,但您是否尝试过更简单的查询来测试您的语法是否正确?此查询是否在SQL Server(Management Studio /查询分析器)中有效?
从SQL Server的角度来看,你使用的方法太多了。如果我在SQL Server中编写该查询,它看起来更像我在下面写的。我不确定变量@ pa_key0,这个查询是存储过程的一部分还是SunSonic在运行查询时替换了这个变量?
SELECT
pa_id,
pa_key,
pa_title,
pa_keywords,
pa_description,
pa_header,
pa_created,
pa_modified,
pa_language
FROM
cms_page
WHERE
pa_key = @pa_key0
ORDER BY
pa_id ASC;
答案 3 :(得分:0)
我认为您需要设置Subsonic的架构才能使用。这个帖子似乎有一些信息:
Subsonic - How to use SQL Schema / Owner name as part of the namespace?