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

ebb*_*ebb 19 f# type-providers

您将如何创建LINQ-TO-SQL类型提供程序,生成或/和重新生成类?

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

编辑:

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

[<Generate>]
type dbSchema = SqlDataConnection<"conString">
Run Code Online (Sandbox Code Playgroud)

并使用它像:

let ctx = dbSchema.GetDataContext()

Tom*_*cek 22

你是对的 - 这似乎很棘手.我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
Run Code Online (Sandbox Code Playgroud)

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

还有一个参数ForceUpdate,但似乎没有任何影响,文档没有说太多.

  • 关于这个的任何消息?它已经超过4年了,当我需要更新时,我正在对连接字符串进行无关的更改,并希望我没有必要. (15认同)
  • "对字符串无关的改变"确实是强制更新的一种有效方式; 我们在这里了解API /可用性问题,我们将为最终的Beta提供更好的解决方案. (8认同)
  • 六年后,推荐的做法是否仍然在连接字符串中插入良性垃圾? (3认同)
  • 现在是我们主的二千零二十年,我们不断地在各处插入空格以重新生成类型,正如这本书所规定的那样。 (2认同)