【问题标题】:Can Visual Studio Lightswitch connect to an oracle database?Visual Studio Lightswitch 可以连接到 oracle 数据库吗?
【发布时间】:2010-08-05 11:48:54
【问题描述】:

Visual Studio Lightswitch的demo全部使用SQL-Server,可以使用Visual Studio Lightswitch从Oracle访问数据吗?

【问题讨论】:

  • 伊恩:我给你留下了答案。您有三个选项:(1) Oracle 的 ODP.Net 11.2 R4,(2) 第三方驱动程序 $$$,和 (3) 开源。 @Matt Eisenberg 走在正确的轨道上,但还有更多选择。

标签: oracle visual-studio-lightswitch


【解决方案1】:

是的,如果您可以获得实体框架的第三方提供商。这周我其实在 VSLive 上问过这个问题。

【讨论】:

  • 实体框架的第三方提供者需要多少钱?是否有人需要知道如何编程以将其连接到 Lightswitch?
  • web.datadirect.com/products/net/net-for-oracle/index.html。不确定您问题的第二部分。
  • 至于第二部分,我相信,一旦它安装在人的机器上,他们就会选择它作为数据源。他们需要知道连接信息,就像他们使用任何其他数据源一样。但不应该需要编程知识来连接它。
【解决方案2】:

Visual Studio Lightswitch 可以通过实体框架持久化到 Oracle 数据库中。

  1. Oracle 数据提供者 (ODP.Net)

    Oracle 的 ODAC 工具包含用于 Visual Studio 应用程序的 Oracle 数据提供程序 (ODP.Net)。 Oracle 最新的驱动程序,支持 Entity Framework 4.1 和“模型优先”方法。

    编辑:我不确定它是否支持“代码优先”或 EF 4.2,因此请查看文档。也就是说,它是免费的并且由 Oracle 提供支持,因此我强烈建议您先从这里开始,然后再自行开发,或者使用开源提供商/驱动程序

    Download ODP.Net 11.2.0.3

    EF Tutorial w/ ODP.Net

    注意:“11.2.0.2 Release 4”会删掉它,但“11.2.0.3 is”会更稳定。

  2. 第三方驱动程序可供购买:

    docConnect for Oracle

    DevArt's ADO.Net Provider for Oracle

  3. 开源供应商

    此外,还有一些可用的开源选项——我在 Github 上找到的一个:

    https://github.com/object/NorthwindOData


MSDN: How to Connect Lightswitch to EF 4.1上的教程

【讨论】:

  • Oracle ODAC 工具的每个版本是否都不是测试版但完全支持 .net 的发布版本?
  • 是的。我忘了编辑我的答案 - 11.2.0.3 已完全发布,而不是测试版......它支持实体框架 4.1 - 警告:它支持“模型优先”和“4.1”......你必须阅读文档或询问支持 4.1 和 Code-First 方法是否良好。
【解决方案3】:

我使用了支持 Entity Framework 的最新 ODAC 11.2 Release 4 (11.2.0.3.0),它运行良好。

如果您收到此错误,“内部异常消息:连接已经是本地或分布式事务的一部分”

您可以通过关注 BScholz 的第二个帖子https://forums.oracle.com/forums/thread.jspa?threadID=2263095来解决此问题

基本上,您需要为 Oracle 数据源实现 SaveChanges_Excuting 和 SaveChanges_Excuted。

  1. 切换到“文件视图”(LightSwitch 将默认显示“逻辑视图”)。
  2. 在服务器项目中添加对“System.Transactions”的引用。
  3. 切换回“逻辑视图”
  4. 右键单击数据源名称并单击“查看代码”以编辑部分类。
  5. 复制粘贴以下代码:

    private TransactionScope _tscope;
    
    partial void SaveChanges_Executing()
    {
        _tscope = new TransactionScope(TransactionScopeOption.Required,
        new TransactionOptions
        {
            IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted
        });
    }
    
    partial void SaveChanges_Executed()
    {
        _tscope.Complete();
        _tscope.Dispose();
    }
    

【讨论】:

    【解决方案4】:

    LightSwitch training kit 有一个专门用于通过 WCF RIA 服务使用替代数据源的练习。

    您可能会发现这很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 2020-07-16
      • 2017-03-16
      相关资源
      最近更新 更多