Oracle datebase 通过实体框架连接(C# VS 2015 数据库优先)错误



我对实体框架有点陌生,我正在尝试通过实体框架连接到Oracle数据库。 使用 Visual Studio 2015 实体框架向导,我通过对当前数据库进行逆向工程创建了一个数据库。 当我开始调试时出现错误:

类型为"系统.无效操作异常"的未处理异常 发生在实体框架中.dll

其他信息:当模型 正在创建。如果使用上下文,则可能会引发此异常 在 OnModelCreate 方法中,或者如果相同的上下文实例是 由多个线程同时访问。请注意,实例成员 的 DbContext 和相关类不保证是线程安全的。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LibraryDLL.DAL;
namespace LibraryDLL
{
public class Class1
{     
public void testDB()
{
using (EntitiesDBTest db = new EntitiesDBTest())
{
List<BOOK> books = db.BOOKS.ToList(); // <-- error
List<USER> users = db.USERS.ToList();
List<HISTORY> histories = db.HISTORies.ToList();
}
}
}
}

下面的代码是从模板生成的。

namespace LibraryDLL.DAL
{
using System;
using System.Collections.Generic;
public partial class BOOK
{
public BOOK()
{
this.HISTORies = new HashSet<HISTORY>();
}
public int BOOKID { get; set; }
public string AUTHORFIRSTNAME { get; set; }
public string AUTHORLASTNAME { get; set; }
public string TITLE { get; set; }
public string SHORTDESCRIPTION { get; set; }
public string LONGDESCRIPTION { get; set; }
public virtual ICollection<HISTORY> HISTORies { get; set; }
}
}

我该如何解决它?

检查是否在 App.Config 文件中包含以下配置

<configuration>
<entityFramework>
<providers>
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

<configuration>
<configSections>
<section name="Oracle.ManagedDataAccess.Client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

编辑

移动这个也是一个好主意

<startup> 
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>

向下到配置标记的底部。

相关内容

最新更新