2011-10-11 68 views
0

EF4插入空值到SQL Server表我有一個複雜的類型,與所有字符串屬性通過功能導入

// Actual class is auto-generated from Model1.tt, 
// this is what the class looks like conceptually: 
public class Product 
{ 
    public string ID { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
} 

我已經做了存儲過程的函數導入。這裏的存儲過程:

create procedure [dbo].[CreateProduct] 
    @ID   nvarchar(50), 
    @Name   nvarchar(50), 
    @Description nvarchar(255) 
as 
begin tran 
insert [dbo].[Products](
    ID, 
    Name, 
    Description 
) 
values (
    @ID, 
    @Name, 
    @Description 
) 
commit tran 
go 

我的函數導入具有以下特徵:

CreateProduct(string ID, string Name, string Descritpion); 

我打電話像這樣(作爲測試):

void AddProduct(Product product) 
{ 
    entities.CreateProduct(product.ID, product.Name, product.Description); 
} 

void Test() 
{ 
    var now = DateTime.Now.ToString(); 

    var product = new Product 
    { 
     ID   = string.Format("ID-{0}", now), 
     Name  = string.Format("Name-{0}", now), 
     Description = string.Format("Description-{0}", now) 
    } 

    AddProduct(product); 
} 

我的問題是,當我查看插入數據庫的內容時(SQL Server 2008),我得到以下值:

ID   10/11/2011 10:35:46 AM 
Name  NULL 
Description NULL 

// Note, the ID string is not 'ID-10/11/2011 10:35:46 AM' ('ID-' in front) 
+1

SQL INSERT的語法是INSERT INTO table(column1,[column2,...])VALUES(value1,[value2,...])''。您錯過了'INTO'關鍵字。 –

+2

@Thomas Li,'INTO'是可選的:http://msdn.microsoft.com/en-us/library/ms174335.aspx –

+0

不,INTO不是必需的。這些存儲過程已經在別處進行了測試,並且工作正常。 – Didaxis

回答

1

Supidity,另一個測試失敗(無關),但造成了問題。不知道爲什麼,但解決了其他測試,解決了這個問題。