2010-08-05 3 views
6

Tất cả các bản demo của Visual Studio Lightswitch sử dụng SQL-Server, có thể truy cập dữ liệu từ Oracle bằng Visual Studio Lightswitch không?Visual Studio Lightswitch có thể kết nối với cơ sở dữ liệu oracle không?

+0

cũng thấy http://meta.stackexchange.com/questions/59759/what-should-the-tag-for- visual-studio-lightswitch-be –

+0

Ian: Tôi đã để lại câu trả lời cho bạn. Bạn có ba lựa chọn (1) Oracle ODP.Net 11.2 R4, (2) Trình điều khiển bên thứ ba $$$, và (3) Mã nguồn mở. @Matt Eisenberg đã đi đúng hướng, nhưng có nhiều lựa chọn hơn. –

Trả lời

5

Visual Studio LightSwitch có thể được tiếp tục tồn đến một cơ sở dữ liệu Oracle qua khung Entity.

  1. cung cấp dữ liệu Oracle (ODP.Net)

    cụ ODAC Oracle chứa cung cấp dữ liệu Oracle (ODP.Net) để sử dụng với các ứng dụng Visual Studio. Trình điều khiển mới nhất của Oracle với sự hỗ trợ cho Entity Framework 4.1 và phương pháp "Model First".

    EDIT: Tôi không chắc liệu nó có hỗ trợ "Code-First" hay EF 4.2 để kiểm tra tài liệu hay không. Điều đó nói rằng, hoàn toàn miễn phí và được hỗ trợ bởi Oracle vì vậy tôi khuyên bạn nên bắt đầu tại đây trước khi tự mình triển khai hoặc sử dụng nhà cung cấp/trình điều khiển nguồn mở.

    Download ODP.Net 11.2.0.3

    EF Tutorial w/ ODP.Net

    Ghi chú: "11.2.0.2 Release 4" sẽ cắt nó, nhưng "11.2.0.3 là" ra ngoài và ổn định hơn.

  2. trình điều khiển của bên thứ ba có sẵn để mua:

    docConnect for Oracle

    DevArt's ADO.Net Provider for Oracle

  3. cung cấp mã nguồn mở

    Ngoài ra còn có một số tùy chọn mã nguồn mở có sẵn - tôi tìm thấy n Github:

    https://github.com/object/NorthwindOData


Hướng dẫn về MSDN: How to Connect Lightswitch to EF 4.1

+0

Có tất cả các phiên bản của Công cụ ODAC của Oracle không có trong phiên bản beta nhưng có thực hiện đầy đủ phiên bản giao hàng của .net không? –

+0

Có. Tôi quên chỉnh sửa câu trả lời - 11.2.0.3 được phát hành đầy đủ, không phải beta ... và nó hỗ trợ Entity Framework 4.1 - báo trước: nó hỗ trợ "model first" và "4.1" ... bạn phải đọc tài liệu hoặc hỏi Hỗ trợ nếu cách tiếp cận 4.1 và Code-First là tốt. –

7

Có, nếu bạn có thể nhận được nhà cung cấp thứ ba cho khung pháp nhân. Tôi thực sự đã hỏi câu hỏi này tại VSLive tuần này.

+0

nhà cung cấp phần thứ ba cho khung thực thể tốn bao nhiêu tiền? Và có ai đó cần phải biết làm thế nào để chương trình để móc nó vào Lightswitch? –

+0

http://web.datadirect.com/products/net/net-for-oracle/index.html. Không chắc chắn về phần thứ hai của câu hỏi của bạn. –

+0

Đến nay phần thứ hai, tôi tin rằng, một khi nó được cài đặt trên máy của người đó, họ chỉ chọn nó như một nguồn dữ liệu. Họ sẽ cần phải biết thông tin kết nối, giống như họ đang sử dụng bất kỳ nguồn dữ liệu nào khác. Nhưng không cần kiến ​​thức lập trình để móc nó lên. –

0

LightSwitch training kit có một bài tập dành riêng cho việc sử dụng các nguồn dữ liệu thay thế thông qua các dịch vụ RIA của WCF.

Bạn có thể thấy hữu ích.

3

Tôi đã sử dụng bản phát hành ODAC 11.2 mới nhất 4 (11.2.0.3.0) hỗ trợ Entity Framework và nó hoạt động tốt.

Nếu bạn nhận được lỗi này, "Thông điệp ngoại lệ Nội: Kết nối đã là một phần của một địa phương hoặc một giao dịch phân phối"

bạn có thể giải quyết vấn đề bằng cách làm theo bài thứ hai bởi BScholz, https://forums.oracle.com/forums/thread.jspa?threadID=2263095

Về cơ bản , bạn cần triển khai SaveChanges_Excuting và SaveChanges_Excuted cho Nguồn dữ liệu Oracle.

  1. Chuyển sang "Chế độ xem tệp" (LightSwitch sẽ hiển thị "Chế độ xem logic" theo mặc định).
  2. Thêm tham chiếu đến "System.Transactions" trong dự án Máy chủ.
  3. Chuyển về "Chế độ xem logic"
  4. Nhấp chuột phải vào Tên nguồn dữ liệu và nhấp "Xem mã" để chỉnh sửa một phần lớp.
  5. Sao chép và dán đoạn mã dưới đây:

    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(); 
    }