linq db.submitchanges()不起作用



我在表中使用LINQ代码成功执行的LINQ代码在表中面临问题。

有人说您的桌子必须具有提交更改的主要键,但我的表有主要键。

有人说使用Integrated Security = tue to to to to to to to to to to t ofection intection intection intection sericer

这是我的连接字符串

<add name="POSConnectionString" connectionString="Persist Security Info=False; Data Source=|DataDirectory|App_DataPOS.sdf; mode=Read Write;"
    providerName="Microsoft.SqlServerCe.Client.4.0" /> 

代码在表中插入数据

public bool InsertItem(Item item)
{
    try
    {
        using (SqlCeConnection conn = new SqlCeConnection(connectionString))
        {
            using (POSContext db = new POSContext(conn))
            {                        
                db.Items.InsertOnSubmit(item);
                db.SubmitChanges();
                return true;
            }
        }
    }
    catch (Exception ex)
    {
        return false;
    }
}

这是我的表脚本

CREATE TABLE [Item] (
  [ItemID] int IDENTITY (1,1) NOT NULL
, [ItemName] nvarchar(100) NOT NULL
, [ItemCode] nvarchar(100) NOT NULL
, [Weight] int NOT NULL
, [IsActive] bit NOT NULL
, [Stock] int NULL
, [UnitID] int NULL
);
GO
ALTER TABLE [Item] ADD CONSTRAINT [PK_Item] PRIMARY KEY ([ItemID]);
GO

我正在Windows表单应用程序开发中工作数据库SQL Server紧凑数据库4.0Visual Studio 2012

我通过将数据库属性更改为不复制而获得了解决方案,并且它可以在bin/debug中制作数据库的副本,并在此处保存更改

您的表中是否有自动插入(身份)列。为了使用LINQ插入数据,您必须将身份列作为表中的主要键。

我也有同样的问题。因此,当您构建项目时,Visual Studio覆盖数据库,并具有Dafault值。尝试从项目目录中的" bin/debug"启动它。希望它会有所帮助。

最新更新