EF4通过“函数导入”将NULL插入SQL Server表

时间:2011-10-11 14:39:13

标签: c# sql-server-2008 entity-framework entity-framework-4

我有一个复杂的类型,包含所有字符串属性

// 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 个答案:

答案 0 :(得分:1)

羞怯,另一项测试失败(无关),但导致了这个问题。不知道为什么,但解决其他测试,解决了这个问题。