2009-12-10 81 views
3

我對LINQ和MS SQL Server有一個非常惱人的問題。我現在在WPF C#中製作一些軟件,並使用LINQ從數據庫中的數據生成類。LINQ將不需要的尾隨空格放在字符串上

但是,當我從程序中更新數據庫中的nvarchar或varchar字段時,LINQ會將尾隨空格添加到字符串中!

我在這樣限定的表中的字段:

ProductName = NVARCHAR(10) 

所以,如果我這樣做:

Product.Name = "Bike"; 
Product.Name = Product.Name.Trim(); 
repository.Add(Product); // Runs an .InsertOnSubmit 
repository.Save();   // Runs a .SubmitChanges 

然後在DB所得到的數據爲「自行車[SPACE] [SPACE ] [SPACE] [SPACE] [SPACE] [SPACE]「其中[SPACE]只是一個空格(在這裏不能寫多個空格)。

它爲什麼這樣做,我該如何讓它停止添加那些惱人的尾隨空格?

在此先感謝

+3

您確定它不是NCHAR(10)字段嗎? – Guffa 2009-12-10 08:29:44

回答

2

以下列方式定義的數據類型爲nvarchar的字段自動生成的LINQ類:

[Column(Storage="_Text", DbType="NChar(20) NOT NULL", CanBeNull=false)] 
public string Text 
{ 
get 
{ 
    return this._Text; 
} 
set 
{ 
    if ((this._Text != value)) 
    { 
     this.OnTextChanging(value); 
     this.SendPropertyChanging(); 
     this._Text = value; 
     this.SendPropertyChanged("Text"); 
     this.OnTextChanged(); 
    } 
} 
} 

其中列設置應該是:發生

[Column(Storage="_Text", DbType="NVarChar(20) NOT NULL", CanBeNull=false)] 

的問題,因爲我在更新的類型SQL數據庫而不重新生成LINQ類。

5

如果我沒有記錯我有同樣的問題......這不是LINQ,而是因爲列的類型。請嘗試將其更改爲VARCHAR。

+0

正如我在我的問題中寫的,數據庫IS使用NVarChar。但是,我發現了這個問題。 – 2010-01-05 12:46:38