我在 Sybase 中有简单的表
-- Creating table 'SimpleText'
CREATE TABLE [dbo].[SimpleText] (
[Id] nvarchar(10) NOT NULL,
[SimpleValue] nvarchar(120) NULL
);
GO
-- Creating primary key on [Id] in table 'SimpleText'
ALTER TABLE [dbo].[SimpleText]
ADD CONSTRAINT [PK_SimpleText]
PRIMARY KEY CLUSTERED ([Id] ASC);
GO
基于此表,它在实体框架中创建了一个模型(使用 4.3)。插入和删除不是问题。
但是,在更新表时,当主键为“[char][number]”即 a1 时,它会生成错误,它表示未找到该列 a1。通过使用一个简单的跟踪工具,这是生成的 sql:
update [dbo].[SimpleText]
set [SimpleValue] = :p0
where ([Id] = :p1)
and (Id = a1)
p0 = simpleTextValueUpdateda1
p1 = a1
在 C# 中更新代码如下:
using (var model = new Entities())
{
var entString = model.SimpleText.Select(t => t);
foreach (var simpleText in entString)
{
simpleText.SimpleValue = "simpleTextValueUpdated" + simpleText.Id;
}
model.SaveChanges();
}
如果同一个键只是一个数字,则没有问题。在 .NET 4 上使用 SqlAnywhere12、EF4.3、C#
有没有人有同样的经历?是否有确保文本在 sql 中正确撇号的修复程序?