問題タブ [sqlmetal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
809 参照

sql-server - SqlMetal、Sql Server 2008 データベース、HierachyID を持つテーブル、dal cs ファイルが作成されることがありますか?

HierachyID フィールドを持つ 2 つのテーブルを持つ 2 つのデータベースがあります。1 つのデータベースでは dal cs ファイルを取得できますが、他のデータベースでは dal cs ファイルを取得できません。

HBus は、dal cs を取得できるデータベースです...

これはファイルを追い出します...これは機能しますが、テーブルの HierarchyID フィールドを除外し、そのテーブルの他のすべてのフィールドを含めます。これで構わないのでOKです。

上記のコマンド行は警告を出しますが、それでもファイルを生成します。

HMsg は HierarchyID フィールドを持つテーブルです。

私は別のデータベース Elf を持っていますが、ほとんど同じものですが、 SQL Metal を使用すると警告とエラーが発生し、dal cs ファイルを取得できません ...

SqlMetal /server:.\SQLSERVER2008 /database:Elf /code:ElfDataContextDal.cs /views /functions /sprocs /namespace:HBusDC /context:HBusDataContext

エラーと警告が表示され、cs ファイルがディスクに表示されません... :-(

フィールドは Elf db で同じ方法で宣言されます

OrgNode [HierarchyID] null ,

HBus データベースで ...

OrgNode [HierarchyID] null ,

両方のデータベースは sql server 2008 の同じインスタンスにあるため、HierarchyID は組み込み型であり、どちらのデータベースにも HierarchyID udt はありません...

事前に返信をお待ちしております...

0 投票する
1 に答える
93 参照

.net - SQLMetalで生成できる行作成時間を節約する方法

行の作成時間を節約したいので、日時列を作成し、デフォルト値をGetdate()に設定しました。しかし、SQLMetalからdbmlファイルを生成し、そこからデータベースを再作成すると、関数が見つかりません。

SQLMetalの実行時にコマンドラインに/functionsパラメーターを追加しましたが、これで問題が解決しませんでした。

あるいは、SQLMetalによってリバースエンジニアリングできる、行の作成時間を節約する他の方法はありますか?

0 投票する
1 に答える
964 参照

linq - Excel To SQL で LINQ クエリを実行する

LINQ と Excel を使用して SQL データベースと対話できるようにしたい (これは従来のものです)。このようなことは可能ですか?

私は SQLMetal をいじっていて、VB でいくつかのデータベース クラスを生成しましたが、Excel にスムーズに取り込めないようです (赤いエラー テキストがたくさん表示されます)。

どんなアイデアでも大歓迎です。

0 投票する
2 に答える
2201 参照

linq-to-sql - SQLMetal DataContext の関連付けが生成されない

データベースの LINQ-to-SQL DataContext とエンティティ クラスを生成しています。データベースにはいくつかのテーブルがあり、そのうちの 2 つは [AccountMaster] と [AccountCodes] です。それらの間には外部キー関係が定義されており、[AccountMaster].AccountNumber は [AccountCodes] から参照されます。

VS2008 で LINQ-to-SQL ファイルを追加し、これらのテーブルを DBML デザイン ビューにドラッグすると、AccountMaster クラス内に AccountNotes のコレクションが適切に生成されます。一方、SQLMetal を使用して DataContext を生成しても、EntitySet コレクションは生成されません。

デザイナーの出力:

SQLMetal 出力:

のガイドに従っています

http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx

最初に SQLMetal を使用して DBML ファイルを生成し、次に結果の DBML から DataContext.cs ファイルを生成しようとしました。

これは関連付けを生成しません。実際、SQLMetal とデザイナー ビューから DBML ファイルを調べると、次のようになります。

デザイン ビュー DBML:

SQL メタル DBML:

そのため、関連付けは DBML ステップで既に欠落しています。

データベースには大量のテーブル/sproc が含まれているため、デザイナーを使用して DataContext クラスを再生成するのは現実的ではありません。SQLMetal で関連付けを正しく生成するにはどうすればよいですか?

編集:

データベース全体で SQLMetal を実行すると、一部のエンティティの関連付けが正しく生成されていることがわかりました。AccountNotes の外部キーは次のように定義されます。

EDIT2:

正しく作成された関連付けは、ON DELETE CASCADE/UPDATE ルールを持つ関連付けであることに気付きました。このルールがデータベース レベルで厳密に定義されていない関連付けを生成することは無意味ですか?

0 投票する
1 に答える
235 参照

sql-server-2008 - SQLMetal は SQL-Server 2008 のデータ型をサポートしていますか?

私はVS2K8の3.5フレームワークプロジェクトでLinqToSQLを使用しており、MS SQL 2k8に対して実行しています。

Visual Studio 内のデザイン サーフェイスを使用してテーブル マッピングを作成すると、すべて正常に動作します。

SQLMetal (Windows SDK v6.1 から) を使用してテーブル マッピングを作成すると、使用している SQL Server 2k8 データ型 (日付と時刻など) について SQLMetal からエラーが発生します。

SQLMetal は SQL Server 2k8 データ型をサポートしていますか? 更新されたバージョンが必要ですか? または、ビジュアル デザイナでマッピングを作成するか、SQL Server 2k5 データ型に戻す必要がありますか?

ありがとう

0 投票する
3 に答える
3452 参照

visual-studio - 特定のテーブル用のSQLMetal、またはテーブルを.dbmlファイルに更新/追加する別の方法

サーバーエクスプローラーを使用せずに、Visual Studioでこれを行う簡単な方法はありますか?

マクロも見てみましたが、記録はプロデュースのみ

だから運がない。

これをスクリプト化する方法はありますか?

0 投票する
3 に答える
7359 参照

c# - LINQ to SQL/SQLMetal で外部キーを効率的に更新するにはどうすればよいですか?

外部キー フィールドを更新しようとして、問題が発生しました。

をスローするSQLMetalコードが原因で、「オブジェクトの現在の状態のため、操作は無効です」と爆撃しますSystem.Data.Linq.ForeignKeyReferenceAlreadyHasValueException()

この問題に遭遇したのは私が初めてではありません。

LinqToSQLエラー : オブジェクトの現在の状態が原因で操作が有効ではありません。 、 とりわけ。

彼らの解決策はこれです:

それはもちろん、私がすでに知っている ID を持つオブジェクトを取得するためだけに、Foreign での DB ルックアップを引き起こします! では、無意味なクエリ (または、これらの FK が多数ある場合はクエリ) を使用せずに、この更新を行うにはどうすればよいでしょうか?

0 投票する
4 に答える
1152 参照

linq-to-sql - 1つのテーブルの問題を指すSQLMetal複数の外部キー

編集-実際の問題をより適切に反映するために質問をクリーンアップします。

SQLMetalを使用して、SQLServerデータベースからデータベースクラスを生成しています。最近、同じテーブルを指す複数の外部キーを持つテーブルを追加する必要がありました。LINQPadを使用して新しいテーブルを試してみると、次のように両方の外部キーのプロパティにアクセスできました。

  • record.FK_AId
  • record.FK_BId
  • record.FKA
  • record.FKB

...それは私がそれを期待する方法です。問題は、SQLMetalによって生成されたクラスが次のプロパティを生成することです。

  • record.FK_AId
  • record.FK_BId
  • record.FKA
  • record.FKBTableNameGoesHere

これで、生成されたクラスを変更できるので、FKBTableNameGoesHereはFK_Bになりますが、生成されたファイルはさまざまなチームメンバーによって頻繁に変更されるため、非常に面倒ですこれに対する簡単な修正はありますか?

前もって感謝します。

編集2 したがって、解決策は、自分が望む名前のプロパティを持つ部分クラスを作成し、ゲッター/セッターが不適切な名前のプロパティを指すようにすることだと思いました。これは選択には有効でしたが、where句などでは使用しませんでした。誰もが解決策を持っていますか?

0 投票する
2 に答える
1678 参照

c# - このオブジェクトにはパラメーターなしのコンストラクターが定義されていません

私のプロジェクトでは、SqlMetal を使用して Linq-to-SQL クラスを作成しています。これに関する問題は、SqlMetal がパラメーターなしのコンストラクターを作成するように見えないことです。デフォルトの接続文字列名をいつでも取得してコンストラクターに渡すことができるため、常にこれを回避してきましたが、コードではなくマークアップで LinqDataSource を使用することを余儀なくされているため、コンストラクターを指定できません。

パラメーターなしのコンストラクターを生成するように SQLMetal を強制する方法はありますか?
または、頭をひっくり返して、実際には、次のようにマークアップで接続文字列を指定する方法があります。

0 投票する
1 に答える
94 参照

.net - LINQ to SQL: EnumMapper.exe の起源?

私が現在取り組んでいるこのシステムでは、ここで詳しく説明されているプロセスと非常によく似たプロセスを介して、SqlMetal を使用して DataContext が生成されています

  1. データベースで SqlMetal.exe を実行して dbml ファイルを生成する
  2. dbml ファイルでコンソール アプリを実行して、特定の int を列挙型に置き換える
  3. SqlMetal.exe を再度実行して、dbml ファイルからコードを生成します。

問題は、ステップ 2 を実行するために EnumMapper.exe という実行可能ファイルを使用しているのですが、それがまさに私が望んでいることを実行していないことです。これが社内で作成され、ソース コードがどこにも残されていないアプリなのか、それとも Web 上のどこかにあるプログラムなのか、私にはわかりません。広範囲にわたるグーグル検索で、上記のリンク以外の手がかりは見つかりませんでした。

この不思議な EnumMapper.exe について聞いたことがありますか?