質問

どのようにしますか LINQ-TO-SQL タイププロバイダー、生成または/およびクラスを再生しますか?

データベースに新しいテーブルを追加したばかりで、タイププロバイダーはそれを理解できません。タイププロバイダーでラインを削除しようとし、もう一度入力しようとしました - 運はありません。また、再建を試みました。まだ運がありません。

編集:

次のようなタイププロバイダーを定義しました。

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

そしてそれを使用して:

let ctx = dbSchema.GetDataContext()

役に立ちましたか?

解決

あなたは正しい - これは非常に難しいようです。私は使用しています SqlDataConnection スクリプトファイルのタイププロバイダーと、これまでにわかったスキーマを更新する唯一の方法は、接続文字列にマイナーな(無関係な)変更を行うことです。たとえば、後にスペースを追加します = パラメーターの1つの:

[<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, 、しかし、それは何の効果もないようです ドキュメント それについてあまり言わない。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top