2013-02-26 65 views
2

我正在使用Oracle最新發布的Managed ODP.NET驅動程序連接到我的數據庫(請參閱here)。連接設置很好。我現在嘗試使用一個非常實用的示例。問題是我得到了一個ArgumentOutOfRangeException。它出現在foreach-Statement上。使用LINQ to SQL與託管的ODP.NET(Oracle)

我很簡單的對象:

[Table(Name = "my_mgr.ADDRESS")] 
public class Address 
{ 
    [Column(Name = "NAME")] 
    public string Surname; 

    [Column(Name = "VNAME")] 
    public string Forename; 

    [Column(Name = "ANZ")] 
    public int Anz; 
} 

測試查詢的一部分:

DataContext db = new DataContext(inst.Connection); 
Table<Address> addressTable = db.GetTable<Address>(); 

if (addressTable != null) 
{ 
    //"SELECT * from my_mgr.ADDRESS WHERE anz > 0"; 
    var query = from p in addressTable where p.Anz > 0 select p; 

    foreach (var p in query) 
    { 
     MessageBox.Show(
      "Forename: " + p.Forename + "\n" + 
      "Surname: " + p.Surname 
     ); 
    } 
} 

而我原來的SQL查詢時(這實際上是工作):

SELECT * from my_mgr.ADDRESS WHERE anz > 0 

我真的搜索了很多,但我找不到有效的結果,因爲司機是非常新的,似乎沒有人之前提出這個問題。我非常確定該驅動程序支持LINQ to SQL,如this website所述。可悲的是,我無法使用實體框架和Visual Studio提供的自動生成工具。

+1

曾經是那個linq to sql用於SQL Server(不是Oracle,這需要Linq to Entity)。所以這改變了(老實說不知道最新的化身)? – tbone 2013-02-26 15:03:17

回答

1

Linq to SQL不支持Oracle。如果你想使用ODP.NET和Linq就像linq to sql,我建議你使用ALinq。 http://www.alinq.org