当前位置: 首页 > 面试题库 >

使用SqlCe和EntityFramework进行插入和更新的语法

燕刚毅
2023-03-14
问题内容
VS 2008, SqlCe 3.5

我正在尝试学习EntityFramework,但无法获得基本的插入和更新功能。当包含SqlCe数据库(.sdf)时,向导将创建Test.edmx /
designer.vb文件。由此,我创建了我的数据上下文,如下所示。表名称是“用户”。

我的实体类的语法似乎与Web上的示例有些不同。这有点令人困惑,我不知道为什么会这样。下面,我展示了两种不同的Insert方法,这两种方法都在.SaveChanges行中给出了例外:

An error occurred while updating the entries. See the InnerException for details.

{“ SQL Server Compact不支持服务器生成的键和服务器生成的值。”}

还有Update方法,我真的不知道在缺少的部分写些什么。对于这些问题上的一些帮助,我们将非常高兴。

Public Sub Insert(ByVal user As Users)
    Dim ctx As New TestDBEntities1(connection)
    ctx.Users.Context.AddObject("Users", user)
    ctx.Users.Context.SaveChanges()
End Sub

Public Sub Insert(ByVal user As Users)
    Dim ctx As New TestDBEntities1(connection)

    ctx.AddToUsers(user)
    ctx.SaveChanges()
End Sub


Public Sub Update(ByVal user As Users)
    Dim ctx As New TestDBEntities1(connection)
    Dim q = (From n In ctx.Users Where n.Id = user.Id Select n).Single

    ' How to update ??

    ctx.SaveChanges()
End Sub

问题答案:

如以上评论;这已在SQL CE 4.0中修复。



 类似资料:
  • 我有一个用户,可以通过表单注册:姓名、姓氏、电子邮件、电话、密码、用户名。 注册用户可以更改:姓名、姓氏、电话 我的用户类型 我应该如何为注册和更新呈现不同的表单?

  • 我有以下三张桌子。请原谅表名,它们是通用数据库结构命名转换的一部分。 我想编写一个查询,使用匹配的值将值插入多对多表:tbl_331_to_tbl_320_字段。如果我使用DO NOTHING参数,这是有效的。 此语句用于插入找到匹配的值。 但是我想使用DO UPDATE,所以如果有冲突,它将更新第二个id(S.id)。例如,如果我将S.field_3中的值更改为与新ID匹配的其他值,我想更新这个

  • 但现在我也需要知道: 插入了多少行 由于现有而更新了多少行 由于约束无法插入多少行 如果最后一行没有遵守约束,那么以前插入/更新的行是否会保留在数据库中?

  • 是否有“首选”方法可供使用?还是有一种情况应该用在另一种上? 太感谢了!

  • 问题内容: 我想使用此查询中的值进行更新,但这意味着它返回多个值。 消息512,级别16,状态1,行1 子查询返回的值大于1。当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。 它如何返回不止一列? 问题答案: 如果此查询返回所需的信息: 然后,这可能是您想要的UPDATE查询: 我必须同意戈登的观点,您的分组似乎很奇怪。我不确定我是否正确(这就是为什么我强烈建议您先

  • 问题内容: 是否可以为表的插入和更新事件触发mysql触发器? 我知道我可以做到以下几点 但是我该怎么办 是否可以,或者我必须使用2个触发器?两者的代码都相同,我不想重复。 问题答案: 您必须创建两个触发器,但是您可以将通用代码移动到过程中并使它们都调用过程。