0

我正在使用 Entity Frameworks 4 和自我跟踪实体创建一个项目。我希望能够从 sql server 2008 数据库或 sql server compact 数据库中获取数据(开关位于配置文件中)。我正在使用存储库模式,我将把自我跟踪实体放在一个单独的程序集中。

我需要两个 edmx 文件吗?如果是这样,我如何在单独的程序集中只生成一组 STE?我还需要生成两个上下文类吗?我不确定这一切的管道。任何人都可以帮忙吗?

达伦

我忘了补充一点,这两个数据库是相同的,而精简版是供离线使用的。

4

2 回答 2

1

只是为了跟进这件事。最后我不得不维护两个单独的 edmx 文件,一个用于 sql server,一个用于 compact。主要原因是 compact 3.5 不支持自动身份(如 Zeeshan 上面提到的)。这反过来又导致了两个上下文类。在 sql server compact 的上下文类中,我必须输入代码来检查插入,在数据库中查询最新的 id 并在保存之前手动增加它。

值得庆幸的是随着 compact 4.0 的发布,这不再适用,因为它支持自动 id,并且您确实可以只使用一个 edmx 文件。

达伦

于 2011-05-07T14:05:32.383 回答
0

只要架构完全相同,您就需要 edmx 文件。只需更改连接字符串,一切都会无缝运行。虽然我不确定当精简版不支持身份概念而完整的 sql server 支持时,你是怎么说架构相同的。因此,如果您使用的特定于 sql server 的功能在 compact 中不可用,那么您会遇到运行时错误。

于 2010-07-10T06:05:19.600 回答