ServiceStack,Oracle和EntityFramework

时间:2016-01-18 18:04:24

标签: oracle entity-framework servicestack ormlite-servicestack

我试图将一些旧的WCF Web服务转换为使用ServiceStack并添加更多功能。

我需要连接到Oracle并使用EntityFramework进行数据访问。

我已尝试将Oracle托管驱动程序与ServiceStack.OrmLite.Oracle.Managed包一起使用,并不断收到错误。

我参加了这个演示:http://www.dotnetcurry.com/aspnet/1056/introducing-service-stack-tutorial

并修改它以使用Oracle并遇到各种问题。

有人能指出一些关于如何做到这一点的信息吗?

我将ormListConnectionFactory修改为:

var ormLiteConnectionFactory = new OrmLiteConnectionFactory(ConfigurationManager.ConnectionStrings["Oracle"].ConnectionString,
                                                                        OracleOrmLiteDialectProvider.Instance);

得到这两个错误:

The type 'OrmLiteDialectProviderBase<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'ServiceStack.OrmLite, Version=4.0.0.0, Culture=neutral, PublicKeyToken=e06fbc6124f57c43'.
cannot convert from 'ServiceStack.OrmLite.Oracle.OracleOrmLiteDialectProvider' to 'ServiceStack.OrmLite.IOrmLiteDialectProvider'

有没有办法不使用OrmLite而只是使用EF6,而不是?

1 个答案:

答案 0 :(得分:2)

使用OrmLite和Oracle的NuGet包是ServiceStack.OrmLite.Oracle。但是,如果您不想使用OrmLite,请不要引用任何OrmLite NuGet包或使用其OrmLiteConnectionFactory类。

ServiceStack本身不需要对OrmLite有任何依赖,您收到的错误消息可能是由于尝试使用在版本 v4停止的旧第三方NuGet包ServiceStack.OrmLite.Oracle.Managed进行混合和匹配。 0.33 以及您不能做的不同版本的ServiceStack软件包 - 所有ServiceStack NuGet软件包应该是相同版本

ServiceStack不禁止使用EF6 - 您应该能够像使用任何其他.NET项目一样使用EF6。