私は、Microsoft を 100% 使用しない場合に発生する、素晴らしい特異性の 1 つと格闘しています。当社ではSQL Serverではなく、Oracle 11gを使用しています。長い戦いの末、ようやく Oracle データベースに接続し、「コード ファースト リバース エンジニア」POCO などを EF Power Tools で生成することができました。データベースには何百ものテーブルがあり、それらのサブセットを指定する方法が見つからなかったため、コードを生成するのに何時間もかかりました. ツール/コンポーネントは、VS2012 (C#)、Oracle 11g、EF 5、EF 用の「パワー ツール」、Windows 7 Enterprise です。
自動生成されたクラスが機能することを確認するために、非常に単純なコードをいくつか書きました。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entities;
using Entities.Models;
namespace EntitiesConsoleTests
{
class Program
{
private static void Main(string[] args)
{
Console.Write("Press <Enter> to begin...");
Console.ReadLine();
try
{
using (var db = new Context())
{
var q = from usr in db.USERS
orderby usr.USERNAME
select usr;
foreach (var u in q)
{
Console.WriteLine(u.USERNAME);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Exception: " + ex.Message);
}
Console.Write("Press <Enter>");
Console.ReadLine();
}
}
}
このテスト プログラムを VS2012 で実行すると、何かを読み取るのに十分な時間近くにとどまらない出力ウィンドウのクイック フラッシュアップを超える出力が得られません。そこで、プログラムをビルドし、CMD ウィンドウを開き、DOS プロンプトから実行しました。これは私が出力のために得たものです:
(ファイアウォールが原因で画像を投稿できないようです。そのため、テキストで近似します。)
「EntitiesConsoleTests.exe - このアプリケーションを開始できませんでした」というタイトルのダイアログが表示されます。
( X ) This application requires one of the following versions of the .NET Framework:
.NET Framework, Version=v4.5
Do you want to install this .NET Framework version now?
[ Yes ] [ No ]
問題は、4.5 が既にインストールされていることです。そのため、本当の問題が何であるかを理解しようとして、やや途方に暮れています。
ありがとう、ピーター