我正在更新我的 VS 2015、ASP.NET MVC 项目以拥有一个包含我所有数据模型/表、存储过程等的数据项目。
当我构建(或重建)时,我在这个项目中有 1755 个错误,所有这些都是我认为是“类问题”的问题。但是,这些错误出现在我的存储过程文件 ( .sql
) 上。我如何让 VS 意识到这些是.sql
文件而不应该被视为类?
我的一些错误:
- CS1022 C# 类型或命名空间定义,或预期文件结尾
- CS0246 C# 找不到类型或命名空间名称“BEGIN”(您是否缺少 using 指令或程序集引用?) - 就像我的 SQL 语句中的 BEGIN
- CS0103 C# 当前上下文中不存在名称“@Name”。- 在参数名称中
- CS1003 C# 语法错误,预期为 ',' - 这个在注释掉的行中间
我已尝试更新 Properties -> Build Action to Compile(如某些站点上所建议的那样),但这并没有解决问题。
此外,该项目似乎对我有问题,包括声明中的架构,即:
CREATE PROCEDURE [SCHEMA].[SPROC NAME] ...
它希望我只使用存储过程名称。这也适用于我的表声明/创建表语句。它在以下错误(斜体):
CREATE TABLE [SCHEMA].[TABLE NAME]
...
ALTER TABLE [SCHEMA].[TABLE NAME] WITH CHECK
ADD CONSTRAINT [FOREIGN KEY]
FOREIGN KEY ([FIELD NAME]) REFERENCES [SCHEMA].[FOREIGN TABLE NAME]([ID])
更新--- 对于那些感兴趣的人 --- 和新问题
要创建我的存储过程,在我的解决方案资源管理器中,我右键单击我的架构,并将鼠标悬停在添加并选择“存储过程...”,然后从我的工作 SSMS 数据库中复制/粘贴我的存储过程。当我在探索我的新数据项目时,我找到了“SQL Server 对象资源管理器”,发现我的存储过程都没有列在这个数据库项目下。我通过导航到我的数据库项目 -> 可编程性 -> 存储过程,右键单击 -> 添加新存储过程,重新添加了所有存储过程。我删除了所有初始存储过程,这消除了所有奇怪的错误。
以这种方式创建存储过程时,文件会自动填充
CREATE PROCEDURE [SCHEMA].[SPROC NAME]
如果我使用包含的 [SCHEMA] 构建,我会收到错误消息
SQL71501:过程:[SCHEMA].[SPROC NAME] 对 Schema [SCHEMA] 有未解析的引用
我的表(和外键)也会发生同样的事情。
如果我从所有 [SPROC NAME]、[TABLE NAME] 等的开头删除 [SCHEMA],错误就会消失,但是在查看 SQL Server 对象资源管理器时,我所有的表、存储过程等都在架构 dbo。
如何让代码了解所有元素都在指定的模式中而不会出错?