F#类型提供程序,两个数据库,一个可以访问元数据,一个不能访问

时间:2019-04-11 12:30:10

标签: sql-server f# fsharp.data.typeproviders

F#.net core 2.1项目,专门使用类型提供程序

  • SQLProvider-1.1.16
  • Fsharp.Core 4.5.2
  • Fsharp.Data 3.0.1
  • System.Data.SqlClient 4.6.0

是的,Linq也已打开,否则第一个数据库将失败。

我在一台MS SQL Server 2017上有一些数据库(140) 我可以很好地访问一个数据库,而不能访问其他数据库

当连接字符串指向First数据库时,智能就可以正常工作,并带回Dbo中的对象列表。架构,并允许我获取任何查询的结果。

切换到其他数据库时,智能适用于 尝试ctx.Dbo时,ctx.functions,ctx.procedures很好。 它显示(红色圆圈),并且不会继续吗?

退出VS并出现同样的错误,错误的页面太长,太大而无法在此处发布。 这是怎么回事,凭据很好,我已经比较了所有看起来相同的数据库属性。此外,它还从其他数据库中获取一些元数据。 有任何想法吗? 预先感谢

let [<Literal>] Conn_str = @"Data Source=MYCOdbServer;Initial Catalog=MyCompDB1;Integrated Security=SSPI; User ID=validid;Password=validpass; Connection Timeout=900"

type dbProv = SqlDataProvider<ConnectionString = Conn_str, DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER>

let ctx = dbProv.GetDataContext()

let test_func_connect =

        query { for x in ctx.Dbo.DimDate do

                        select x }

-按照建议使用sql profiller-提交的sql看起来相同

-在vs错误消息的下面添加了以下内容:

  

get_AccountBalances功能?   dataContext + dboSchema'成员'GetProperties':类型提供程序'FSharp.Data.Sql.SqlTypeProvider'报告了一个错误:GetMethodImpl。不支持重载,名称='get_AccountBalances',方法-'[|方法get_AccountBalances;方法get_AccountBalances |]',在System.Environment.GetStackTrace(Exception e,Boolean needFileInfo)在System.Environment.get_StackTrace()在ProviderImplementation.ProvidedTypes.ProvidedTypeDefinition.GetMethodImpl(String name,BindingFlags bindingFlags,Binder inder,Binder_inder System.Type.GetMethod(字符串名称,BindingFlags bindingAttr,Binder活页夹,Type []类型,ParameterModifier []修饰符)位于ProviderImplementation.ProvidedTypes.ProvidedTypesContext.convMethodRefToTgt(MethodInfo)上的_callConvention,Type [] _types,ParameterModifier [] _modifiers)在ProviderImplementation上

0 个答案:

没有答案