Подтвердить что ты не робот

Введите поставщика: как восстановить?

Как вы делаете поставщика типа LINQ-TO-SQL, генерируете или/или регенерируете классы?

Я только что добавил новую таблицу в свою базу данных, и провайдер типа не может понять это. Я попытался удалить строку с поставщиком типов и набрать ее еще раз - не повезло. Я также пытался сделать перестройку.. все равно не повезло.

Edit:

Я определил поставщика типа, например:

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

и используя его как:

let ctx = dbSchema.GetDataContext()

4b9b3361

Ответ 1

Вы правы - это кажется довольно сложным. Я использую поставщик типа SqlDataConnection в файле script, и единственный способ обновить схему, которая была найдена до сих пор, - сделать небольшое (несущественное) изменение в строке подключения. Например, добавьте пробел после = одного из параметров:

[<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, но это не имеет никакого эффекта, а документация не говорит об этом.