繁体   English   中英

Console App更新数据库但查询时不会连接到数据源

[英]Console App updates database but will not connect to data source when querying

我创建了一个控制台应用程序来连接到 Oracle ADW 数据库。 当我进行初始迁移时,它完全按照我的预期创建了表。 现在,当我尝试查询该数据库上的表时,出现错误:“ORA-12154:TNS:无法解析指定的连接标识符”

我知道它可以在更新数据库成功时连接。 这是我的背景:

using Microsoft.EntityFrameworkCore;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WCONSftpFileUploadChecks.Models;

namespace WCONSftpFileUploadChecks.Data
{
    public class OracleDBContext : DbContext
    {
        public OracleDBContext() : base()
        {
        }

        public virtual DbSet<FileDet> FileDetails { get; set; }
        public virtual DbSet<RemotePath> RemotePaths { get; set; }
        public virtual DbSet<Peter> Peters { get; set; }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseOracle(@"User Id=<USER>;Password=<PASSWORD>;Data Source=<SOURCENAME>");
        }

        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Entity<FileDet>()
                .Property(p => p.value)
                .HasColumnType("decimal(18,4)");
        }
    }
}

这是项目结构:

项目结构

这是我尝试检索数据的方式:

using WCONSftpFileUploadChecks.Code;
using WCONSftpFileUploadChecks.Data;
using WCONSftpFileUploadChecks.Models;

namespace WCONSftpFileUploadChecks
{
    public class Program
    {
        public static void Main(string[] args)
        {
            using(var ctx = new OracleDBContext())
            {
                foreach (RemotePath p in ctx.RemotePaths)
                {
                    Console.WriteLine(p.remote_path);
                }

            }
            Console.ReadLine();
            return;
        }
    }
}

这是它抛出错误的地方:

此处抛出错误

我故意没有包含 Model,因为我认为它不相关。 我只是看不出有什么问题。

答案很简单,只在我的上下文文件中的 OnModelCreating 方法中添加了两行:

OracleConfiguration.TnsAdmin = @"C:\path\to\wallet\file";

OracleConfiguration.WalletLocation= @"C:\path\to\wallet\file";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM