【问题标题】:Oracle datebase connectced through Entity Framework ( C# VS 2015 database-first) error通过实体框架连接的 Oracle 数据库(C# VS 2015 数据库优先)错误
【发布时间】:2017-08-14 17:51:18
【问题描述】:

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

“System.InvalidOperationException”类型的未处理异常 发生在EntityFramework.dll中

附加信息:模型在运行时不能使用上下文 正在创建。如果使用上下文,可能会抛出此异常 在 OnModelCreating 方法中,或者如果相同的上下文实例是 多个线程同时访问。请注意,实例成员 不保证 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; }
    }
}

我该如何解决?

【问题讨论】:

    标签: c# oracle entity-framework visual-studio-2015


    【解决方案1】:

    检查您是否在 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>
    

    一直到配置标签的底部。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-19
      • 2021-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多