bdp*_*ish 15 sql-server-2008 dbcontext
我在使用DbContext发送SQL语句时遇到问题context.Database.ExecuteSqlCommand().
我正在努力执行
CREATE TABLE Phones([Id] [uniqueidentifier] NOT NULL PRIMARY KEY,
[Number] [int],[PhoneTypeId] [int])
GO
ALTER TABLE [dbo].[Phones] ADD CONSTRAINT [DF_Phones_Id]
DEFAULT (newid()) FOR [Id]
GO
Run Code Online (Sandbox Code Playgroud)
这与错误字符串失败
Incorrect syntax near the keyword 'ALTER'.
Incorrect syntax near 'GO'.
Run Code Online (Sandbox Code Playgroud)
但是,在SSMS中运行该确切语句运行时没有错误?我需要通过DbContext解决有关默认约束的任何问题.我看到人们使用约束而没有将IsDbGenerated设置为true的问题.我不知道这会如何适用于此.
我知道, necroposting 是不好的方式,但可能这篇文章会节省某人的时间。正如 Dave 的帖子中提到的,GO 不是 SQL 的一部分,因此我们可以创建一些解决方法来使其工作
var text = System.IO.File.ReadAllText("initialization.sql");
var parts = text.Split(new string[] { "GO" }, System.StringSplitOptions.None);
foreach (var part in parts) { context.Database.ExecuteSqlCommand(part); }
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您的命令将被拆分并毫无问题地执行
| 归档时间: |
|
| 查看次数: |
11534 次 |
| 最近记录: |