我有一个客户端应用程序(WPF,C#,。net4),它使用通过SQLITE提供程序连接的POCO实体模型。因此,我希望在asp.net项目(使用MSSQL提供程序)中使用此项目中的相同实体,以便在我的客户端应用程序中使用相同的实体。我想在我的客户端应用程序(SQLITE)和Web服务器(MSSQL)之间使用相同的poco模型使用Web服务创建某种复制功能。
因此,我在两个项目中都引用了我的实体模型,并为edmx文件提供了不同的连接字符串。在这种情况下(因为edmx是为sqlite提供程序编译的)当我尝试使用mssql数据提供程序时,我得到一个例外:
无法将System.Data.SqlConnection强制转换为System.Data.SQliteConnection
所以我的问题是,是否可以在一个实体模型中使用不同的数据提供者? 在不同项目中使用相同模型的最佳方法是什么?
答案 0 :(得分:1)
如果我正确理解您的问题,那么如果您正在寻找支持多个数据库实施的EF模型,那么这是不可能的。 EF自动生成的SSDL文件将包含提供程序特定的元数据,因此将限制它与您正在使用的不同数据库实现的独立性。
有一些articles提供了解决此问题的方法,但这需要为每个提供程序单独复制模型,并使用提供程序详细信息破解生成的XML。
答案 1 :(得分:0)