.NET 4.0实体框架插入错误?

时间:2010-07-20 14:20:57

标签: entity-framework .net-4.0 sql-server-ce

我不知道为什么在SaveChanges()上出现错误,我在谷歌搜索,有人说使用EF,数据库的表有主键,我有这个,但仍然是错误。错误消息不够清楚,它只是抛出System.Data.UpdateException。 守则:

public static void AddAccount(int _acc_id,string _name)
{
    dataEntities de = new dataEntities(GetEntityConn());
    account acc = new account
    {
        account_id = _acc_id,
        name =  _name
    };
    de.AddObject("account", acc);
    de.SaveChanges();
}

4 个答案:

答案 0 :(得分:2)

解决:我找到了解决方案,请参阅此主题:http://social.msdn.microsoft.com/Forums/en-US/sqlce/thread/48984bd4-0921-4637-bd8f-8aa1ae9514ab 简而言之,不要使用int作为数据类型,使用uniqueidentifier类型。这个问题不会发生在SQL Server上,只有在使用SQLCE时才会发生。

答案 1 :(得分:0)

我的通灵能力告诉我,account_id字段对其有唯一约束,并且_acc_id的值已经在表格中。

如果我强大的精神力量是错误的,那么就需要更多的信息。 8)

答案 2 :(得分:0)

猜测EntitySetName不是帐号,但如果没有更多信息则很难说清楚。

我会做的是:

public static void AddAccount(int _acc_id,string _name)
{
    dataEntities de = new dataEntities(GetEntityConn());
    account acc = new account
    {
        account_id = _acc_id,
        name =  _name
    };
    de.Accounts.Add(acc);
    de.SaveChanges();
}

这消除了字符串值,因此它也应该有助于重构

答案 3 :(得分:0)

<强>更新 我尝试在SQL Server 2008上创建一个相同的表,从中生成edmx文件,并使用相同的代码进行插入,它的工作原理!所以我相信所有关于EF 4.0与SQLCE .... 我以窗口形式上传了一个测试项目,带有一个SQLCE数据库,只需一个按钮事件,就可以下载了

http://www.netfrd.com/testproject.zip

代码很简单,但它确实不起作用。