类型提供者:如何重新生成?

时间:2011-10-19 12:24:51

标签: f# type-providers

您如何制作LINQ-TO-SQL类型提供程序,生成或/并重新生成类?

我刚刚在我的数据库中添加了一个新表,而类型提供程序无法解决这个问题。我试图删除类型提供程序的行,并再次键入它 - 没有运气。我也尝试过重建......但仍然没有运气。

修改

我已经定义了类型提供程序,如:

[<Generate>]
type dbSchema = SqlDataConnection<"conString">

并使用它:

let ctx = dbSchema.GetDataContext()

1 个答案:

答案 0 :(得分:21)

你是对的 - 这似乎很棘手。我在脚本文件中使用SqlDataConnection类型提供程序,并且更新我到目前为止找到的架构的唯一方法是在连接字符串中进行一些小的(不相关的)更改。例如,在其中一个参数的=之后添加空格:

[<Generate>]
type Northwind = TypeProviders.SqlDataConnection
  <"data source=.\\sqlexpress;initial catalog=Northwind;integrated security=True">

[<Generate>]
type Northwind = TypeProviders.SqlDataConnection
  <"data source=.\\sqlexpress;initial catalog=Northwind;integrated security= True">

//                                                                          ^ here

似乎使用连接字符串作为键来缓存模式,因此如果您将其更改回来,则会再次获得旧模式。我想这可能是一个错误,所以添加空格是一种可能的解决方法。

还有一个参数ForceUpdate,但这似乎没有任何效果,the documentation对此没有太多说明。