我正在使用TypeProvider来访问一些数据,类似这样:
type internal SqlConnection =
SqlEntityConnection<ConnectionString =
@"XXXXXXXXXX">
type FooRepository () =
member x.GetFoo (Id) =
let context = SqlConnection.GetDataContext()
query {for foo in context.Foos do
where (foo.Id = Id)
select foo}
问题是我得到了以下内容:
“FooRepository”类型比它所使用的值、成员或类型“System.Linq.IQueryable”的可访问性更低。
我在这里看到了同样的问题:https://stackoverflow.com/questions/18811609/type-x-is-less-accessible-than-the-value。
既然我想要公开此类型并且我不喜欢 SO 上的解决方案,我尝试做了以下事情:
SqlDataConnection<ConnectionString =
@"XXXXXXX">
问题在于数据库位于Azure Sql Server上,因此我遇到了这个错误:
有人知道如何解决吗?使用TPs最好的一点是我不需要明确地定义类型 - 但看起来我必须这样做? 烦死了。类型提供程序'Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders'报告了一个错误:读取模式时出错。警告:SQM1012:无法从SqlServer提取'tbo.Foos'表。