[英].Net Core Console App - EF Core SaveChangesAsync() not committing updates to database
[英]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.