小编Mus*_*g31的帖子

Oracle Instant Client和Entity Framework在配置方面存在问题

我正在尝试学习并弄清楚是否可以将MVC,EF,ODAC 11.2.0.3应用程序部署到安装了先前版本的ODP.NET的服务器上.我想我可以使用Oracle Instant Client,而不是更新服务器ODP.NET(我不能).

这可行吗?

1)我将这些dll添加到我的项目中以支持Instant Client

-Oracle.DataAccess.dll

-oci.dll

-ociw32.dll

-orannzsbb11.dll

-oraociei11.dll

-OraOps11w.dll

2)接下来,我更新了dbProviderFactories的web.config

   <system.data>
    <DbProviderFactories>
    <add name="Oracle Data Provider for .NET"
    invariant="Oracle.DataAccess.Client"
    description="Oracle Data Provider for .NET"
    type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess,    Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
    </DbProviderFactories>
    </system.data>
Run Code Online (Sandbox Code Playgroud)

3)这个(afaik)是如何在bin rathre中使用Oracle dll而不是GAC

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89b483f429c47342" />
    <publisherPolicy apply="no" />
  </dependentAssembly>
</assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

4)最后我的connectionString

    <connectionStrings>
    <add name="Entities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=Oracle.DataAccess.Client;
provider connection string=&quot;DATA SOURCE=XXX;PASSWORD=XXX;PERSIST SECURITY INFO=True;USER ID=XXX&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

这是我收到的错误无法找到请求的.Net Framework数据提供程序.它可能没有安装.

我非常感谢这里的任何帮助.我很新,有很多东西需要学习.提前致谢.干杯

c# oracle asp.net-mvc entity-framework odac

8
推荐指数
1
解决办法
2万
查看次数

foreach的新手表现问题...需要建议

此部分只是从Excel电子表格中读取.这部分工作正常,没有性能问题.

IEnumerable<ImportViewModel> so=data.Select(row=>new ImportViewModel{
                  PersonId=(row.Field<string>("person_id")),
                  ValidationResult = ""
                  }).ToList();
Run Code Online (Sandbox Code Playgroud)

在我传递给View之前,我想设置ValidationResult,所以我有这段代码.如果我对此进行评论,则模型会快速传递给视图.当我使用foreach时,它将花费一分钟.如果我对item.PersonId的值进行硬编码,那么它会快速运行.我知道我做错了什么,只是不知道从哪里开始以及我应该遵循的最佳做法是什么.

foreach (var item in so)
                {
                    if (db.Entity.Any(w => w.ID == item.PersonId))
                    {
                        item.ValidationResult = "Successful";
                    }
                    else
                    {
                        item.ValidationResult = "Error:  ";
                    }
                 } 

return View(so.ToList());
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc

3
推荐指数
1
解决办法
186
查看次数

标签 统计

asp.net-mvc ×2

c# ×2

entity-framework ×1

odac ×1

oracle ×1