1

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

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

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

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

我的大问题是。假设服务器有 10 个项目,其 id 如下:ProjectId: 1, ..., ProjectId: 10。

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

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

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

提前致谢

4

1 回答 1

0

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

或者...

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

如果您想比较意见和策略,可以进行很多讨论。

于 2013-04-27T08:49:56.320 回答