【问题标题】:Entity Framework Client/Server needs to share the same key IDEntity Framework Client/Server 需要共享相同的 key ID
【发布时间】:2013-04-27 08:38:53
【问题描述】:

我是一名学生,正在开发一个项目,我使用 Entity Framework 5.0 CodeFirst 为我的应用程序提供嵌入式数据库。我有一个服务器和一个客户端应用程序,它们具有完全相同的本地数据库,但在两个单独的解决方案中。

数据库有一个项目表,其中可以有图纸,并且图纸上可以有一些组件。因此,如果客户想在服务器上查询特定项目的图纸,我制定了一个名为:

GetDrawings(int ProjectId)
{
     var result = suedocode: get all drawings;
}

应该获取特定项目的所有图纸。

我的大问题是。假设服务器有 10 个具有以下 id 的项目: 项目 ID:1,...,项目 ID:10。

如果我的客户端应用程序在服务器上使用 ProjectId = 3 查询项目并将其保存在客户端的本地数据库中,则 ProjectId 会获得一个新的 ID,即 ProjectId = 1,因为它是存储在客户端数据库中的第一个项目。当我现在想查询我新存储的项目的图纸并使用关联的 ProjectId 时,我实际上在服务器上使用 ProjectId=1 获取与项目关联的图纸。

所以最大的问题是,我是否可以让服务器生成 Id,并在客户端保存项目时使用这些确切的 Id。因此,当服务器上的 ProjectId=4 存储在客户端的数据库中时,ID 为 ProjectId=4,即使它是表中的第一个项目存储。

希望我解释了我的问题,以便可以理解。

提前致谢

【问题讨论】:

    标签: c# .net database entity-framework


    【解决方案1】:

    您可以在本地存储服务器生成的 ID,但关闭本地密钥的 IDENTITY 功能。

    或者...

    考虑使用 guid/唯一标识符作为主键。它可以在运行时分配并在适当的时候存储。

    如果你喜欢比较意见和策略,有alot of discussion

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-03
      • 1970-01-01
      相关资源
      最近更新 更多