当你不使用 100% 微软时,我正在与那些奇妙的特质之一搏斗。我们公司使用的是Oracle 11g,不是SQL Server。经过漫长的战斗,我终于能够连接到 Oracle 数据库并使用 EF Power Tools 生成“代码优先逆向工程”POCO 等。数据库中有数百个表,我没有办法指定其中的一个子集,因此生成代码需要几个小时。工具/组件是 VS2012 (C#)、Oracle 11g、EF 5、EF 的“Power tools”、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,所以我有点不知所措,试图找出真正的问题是什么。
谢谢,彼得