Oracle から新しくリリースされたマネージド ODP.NET ドライバーを使用してデータベースに接続しています (こちらを参照)。接続設定は問題ありません。ここでは、非常に単純な LINQ to SQLの例を使用してみます。問題は、ArgumentOutOfRangeExceptionを取得することです。foreach-Statement に表示されます。
私の非常に単純なオブジェクト:
[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
私は実際にこれをたくさん検索しましたが、ドライバーが非常に新しく、以前は誰も問題を抱えていなかったように見えるため、有効な結果を見つけることができません。この Web サイトに記載されているように、ドライバーが LINQ to SQL をサポートしていることは確かです。残念ながら、Visual Studio が提供する Entity Framework も自動生成ツールも使用できません。