3

我正在使用 SqlEntityConnection(实体数据模型)TypeProvider 连接到具有一些表和存储过程的 SQL Server 数据库。

#if INTERACTIVE
#r "System.Data"
#r "System.Data.Entity"
#r "FSharp.Data.TypeProviders"
#endif

open System.Data
open System.Data.Entity
open Microsoft.FSharp.Data.TypeProviders

// You can use Server Explorer to build your ConnectionString.
type internal SqlConnection = Microsoft.FSharp.Data.TypeProviders.SqlEntityConnection<ConnectionString = @"DataSource=server etc">
let internal db = SqlConnection.GetDataContext()

根据模板文件中的链接提供的文档 - http://go.microsoft.com/fwlink/?LinkId=229210 “获取数据上下文,它是一个对象,其中包含作为属性的数据库表和存储的数据库过程和函数作为方法。” db 应该将数据库中的存储过程作为方法。但是,我只能将数据库中的表视为 db 的属性。我错过了什么?

4

1 回答 1

4

我认为文档不正确。SqlEntityConnectionTP 在后端使用该工具来edmgen.exe执行实际的代码生成和繁重的工作,据我所知,该工具不支持将存储过程作为生成的代理类的一部分。 这是另一个关于这个问题的 SO question,遗憾的是没有回复。

跑步

edmgen.exe /mode:FullGeneration /connectionstring:"..." /language:CSharp /p:EdmTest

输出各种文件,其中只有一个(.ssdl文件)包含有关我的数据库中存在的存储过程的任何信息。

SqlDataConnectionTP确实支持存储过程,以防您可以选择。

于 2013-07-27T19:44:44.390 回答