2012-06-13 113 views
2

基礎上(使用4.3),此表被創建在實體框架的模式,我有簡單的表在Sybase更新實體Anywhere作爲供應商

-- 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 

。 插入和刪除不是問題。

但是,當更新表時,當主鍵是'[char] [數字]'時,它會生成一個錯誤,即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上使用SqlAnywhere12,EF4.3,C#4

有沒有人遇到過相同的問題? 是否有修復確保文本在sql中正確撇號?

+0

看起來像sybase的ebf 12.01.3726有一個在sql中生成額外和部分的bug。 – talisker

回答

0

確認此問題與我使用的sybase sql/ef提供程序的版本有關。 版本12.0.1.3726生成此問題。 從sybase,12.0.1.3742下載新的EBF,應解決此特定問題。