Visual Studio Lightswitch可以连接到oracle数据库吗?

时间:2010-08-05 11:48:54

标签: oracle visual-studio-lightswitch

Visual Studio Lightswitch的所有演示使用SQL-Server,是否可以使用Visual Studio Lightswitch从Oracle访问数据?

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:5)

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

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

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

    编辑:我不确定它是否支持“Code-First”或EF 4.2,因此请检查文档。也就是说,它是免费的,并且得到了Oracle的支持,因此我强烈建议您在开始自己或使用开源提供商/驱动程序之前从这里开始

    Download ODP.Net 11.2.0.3

    EF Tutorial w/ ODP.Net

    注意:“11.2.0.2版本4”会将其删除,但“11.2.0.3”已经删除并且更加稳定。

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

    docConnect for Oracle

    DevArt's ADO.Net Provider for Oracle

  3. 开源提供商

    此外还有一些开源选项 - 我在Github上找到的选项:

    https://github.com/object/NorthwindOData


  4. MSDN: How to Connect Lightswitch to EF 4.1

    上的教程

答案 2 :(得分: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();
    }
    

答案 3 :(得分:0)

LightSwitch training kit致力于通过WCF RIA服务使用替代数据源。

您可能会觉得有用。