0

我正在使用实体框架4和自我跟踪实体创建项目。我希望能够从sql server 2008数据库或从sql server compact数据库中获取数据(开关位于配置文件中)。我正在使用存储库模式,并且我将拥有坐在独立程序集中的自我跟踪实体。EF4,自我跟踪,存储库模式,SQL Server 2008和SQL Server Compact

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

达伦

我忘了补充一点,两个数据库将是相同的,而且紧凑的版本是供脱机使用。

回答

1

只是为了跟上这一点。最后,我不得不维护两个独立的edmx文件,一个用于sql服务器,另一个用于compact。主要原因是compact 3.5不支持自动识别(正如Zeeshan上面提到的那样)。这又导致了两个上下文类。在sql server compact的上下文类中,我不得不放置代码来检查插入,查询数据库以获取最新的id并在保存之前手动增加它。

谢天谢地,随着compact 4.0的发布,它不再适用,因为它支持auto id,而且你确实可以只使用一个edmx文件。

Darren

0

只要架构完全相同,您确实需要edmx文件。只需更改连接字符串,一切都可以无缝工作。虽然我不确定你是怎么说模式是相同的,当紧凑版不支持身份概念和全面的SQL服务器。因此,如果您正在使用特定于SQL Server的功能,而这些功能在Compact中不可用,那么您会遇到运行时错误。