【问题标题】:ServiceStack, Oracle and EntityFrameworkServiceStack、Oracle 和 EntityFramework
【发布时间】:2016-01-18 18:04:23
【问题描述】:

我正在尝试将一些旧的 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?

【问题讨论】:

    标签: oracle entity-framework servicestack ormlite-servicestack


    【解决方案1】:

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

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

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

    【讨论】:

    • 我改用了 ServiceStack.OrmLite.Oracle 包,现在它没有在元数据中显示我的服务。
    • @MB34 可能是启动出错,可以去?debug=requestinfo in DebugMode查看
    • startUpErrors 为空。我没有看到任何不寻常的地方。
    • 哦,忘了继承我的服务:: Service
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    相关资源
    最近更新 更多