我试图将一些旧的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,而不是?
答案 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。