問題タブ [dbml]

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 投票する
2 に答える
1018 参照

.net - WCF サービス用に自動生成された DMBL ファイルの編集

このプロジェクトでは、DBML ファイルにリンクされた標準の自動生成された designer.cs ファイルがあり、データベース テーブルにマップされるすべてのオブジェクト クラスが含まれています。

これらのオブジェクトを WCF サービスを介して直接渡したいので、必要に応じて [DataContract] および [DataMember] 属性で装飾する必要があります。データベース スキームの変更またはその他の変更時に designer.cs ファイルが再生成されたときに変更が消去されないようにするための最善の方法は何ですか。

部分クラスはオプションですが、DataMember 属性で装飾したいプロパティが自動生成された designer.cs ファイルで既に定義されている場合、同じプロパティ定義を部分クラスに追加することはできません。 2 回定義されています。

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

asp.net - SqlMetal および Visual Studio を使用する場合の DataContext デザイナー ファイルの自動生成

LinqToSqlを使用して、ASP.net アプリケーションの DataContext.dbml クラスを一般化するために SqlMetal を使用しています。最初に DataContext.dbml ファイルを作成したとき、Visual Studio はこれを使用して、関連する DataContext.designer.cs ファイルを作成しました。このデザイナー ファイルには、アプリ全体で使用される C# の DataContext クラス (および dbml ファイルの XML から派生) が含まれており、SqlMetal の出力と LinqToSql での DataContext の使用との間のギャップを埋めるために不可欠です。

ただし、データベースに変更を加えて dbml ファイルを再作成すると、web サイトでデザイナー ファイルが再生成されません。代わりに、古いデザイナー ファイルが維持されます (したがって、LinqToSql DataContext クラスを介して DBML ファイルへの変更にアクセスすることはできません)。

これまでのところ、デザイナー ファイルを再生成するために使用できた唯一のプロセスは次のとおりです。

  1. Windows エクスプローラーに移動し、dbml ファイルと designer.cs ファイルの両方を削除します。
  2. Visual Studio に移動し、ソリューション エクスプローラーで [更新] をクリックします。dbml および designer.cs ファイルがプロジェクトから消えます。
  3. SqlMetal を使用して dbml ファイルを再生成します。
  4. Visual Studio に移動し、ソリューション エクスプローラーで [更新] をクリックします。これで、designer.cs ファイルが再作成されました。

まだdesigner.csファイルがない新しいdbmlファイルが検出された場合、Visual Studioはdesigner.csファイルのみを生成するようです。このプロセスは、いくつかの手動の手順を必要とし、ソース管理を台無しにするため、かなり非現実的です。

上記の手動の削除/更新/再生成/削除プロセスに従わなくても、designer.cs ファイルを自動的に再生成する方法を知っている人はいますか?

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

visual-studio-2008 - すべてのプロパティを失うことなくデザイナーで LinQ2SQL モデルを更新する

そのため、現在のアプリケーションで LinQ2SQL をかなり頻繁に使用しています。部分クラスにほとんどのものがありますが、VS デザイナーで調整する必要があるものもあります (ラップするフィールドのアクセサーなど)。次に、DB とは異なる名前をモデルで付けたいと思うことがあります。

だから、私の問題は今です。既知のテーブルの変更に戻る場合、2 つのオプションしかありません。

  • デザイナーを介して手動で新しいフィールドを導入する
  • モデルからテーブルを削除し、サーバー エクスプローラーから新しくインポートします (プロパティが失われます)。

どちらの方法も不十分です。「変更を更新するだけ」という秘密のボタンがありませんか? つまり、モデルはすべてのマッピングを知っているので、DB から新しいものを取得するだけならそれほど難しくありません。

これを回避する方法はありますか?

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

c# - sqlmetal を使用して内部 (パブリックではない) データ コンテキストを生成する方法

sqlmetal を使用して自分のプロジェクトの dbml データ コンテキストを生成したいのですが、作成されたデータ コンテキストとすべてのクラスが としてマークされていpublicます。これは API レイヤーであるはずなので、代わりにこれらのクラスの多く、または少なくともコンテキスト自体を としてマークしたいと思いますinternal。手動で dbml を編集することなく、sqlmetal またはその他のツールでこれを行う方法はありますか?

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

visual-studio - Visual Studio と LINQ: DBML ファイルをプロジェクト内の別のディレクトリに配置する

私の戦略は、プロジェクトのレイアウトをきれいに保つことでした。これがデータレイヤー プロジェクトであり、関係するエンティティごとにクラス ファイルがあることを考えると、.dbml を独自のディレクトリに配置することにしました。サブディレクトリ内に .dbml ファイルを配置すると、そのファイルが一種の下位レベルの名前空間に変わることが判明しました。

これは C# クラス ライブラリ プロジェクトです。

この機能をオフにして、実際の LinqToSql クラスにアクセスするためにディレクトリ名を入力しなくても、LinqToSql dbml データコンテキスト名にアクセスできるヒントはありますか?

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

visual-studio - Visual Studio 2008のDBMLファイルでテーブルを見つける方法はありますか?

これは何年もの間私を悩ませてきました。

昔、私たちが自分の食べ物を探してDataSetを使用していたときは、上部のドロップダウンリストから必要なものを選択することで、DataSetの特定のテーブルにスナップできました。

たくさんのテーブルを含む大きな古いLinq2SqlDBMLファイルがある場合、ナビゲートするのは悪夢になります。特定のテーブルにジャンプする方法はありますか?

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

dynamic-data - DynamicData: 戻り値の型としてカスタム型を使用

DBML デザイナに、自動生成タイプの代わりにカスタム タイプを使用させることはできますか? database.designer.cs を編集できますが、これらの変更はテーブルを変更すると失われます。

そうでない場合、自動生成された型から Linq のカスタム型に簡単に「変換」するにはどうすればよいですか?

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

vb.net - MSLinqToSQLGenerator は、SQLMetal とは異なる出力を生成します

かなり大きな DBML ファイルがあり、最近、Visual Studio の MSLinqToSQLGenerator が以下とは異なる出力を生成していることを発見しました。

生成された VB コードから任意の (そして比較的小さいと思う) 関連のセットを削除したようです。しかし、SQLMetal は問題なく動作します。出力は同じであるべきではありませんか?

さらに調査した結果、違いは、列の数が異なる同じエンティティの他のアソシエーションでも使用されるプロパティを含むエンティティのアソシエーションであるように思われることがわかりました。例: エンティティ A には列 id と name があります エンティティ B には列 id、name および fkA (A への外部キー) があります エンティティ C には列 id、name、fkA および fkB (nullable fkB) があります

エンティティ C には、fkA を A.id にリンクするアソシエーション C_A があり、fkA と fkB を B.fkA と B.id にリンクするアソシエーション C_B もあります。

C_B をサポートするプロパティのコードは、Visual Studio では生成されませんが、SqlMetal.exe によって生成されます。

このような協会は許されますか?コードが異なる方法で生成されている理由はありますか?

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

linq-to-sql - DBMLは.Name属性を削除しますか?

resharperを使用して、コードベースのモデル名の名前を変更しています。.dbmlファイル内のモーダル名のいくつかにいくつかの変更を加えました。SQLを正しく機能させるには、name属性をプロパティに追加する必要があることに気付きました。.dbmlファイルのコードビハインドビューにこれを追加しました。デザイナーに戻り、変更を加えたのは削除されましたか?名前属性を手動で変更できますか?

手動: `[Column(Name =" iUnitID "、Storage =" iUnitID "、AutoSync = AutoSync.Always、DbType =" Int NOT NULL IDENTITY "、IsDbGenerated = true)] public int UnitID

保存された.dbml`[Column(Storage = "_ UnitID"、AutoSync = AutoSync.Always、DbType = "Int NOT NULL IDENTITY"、IsDbGenerated = true)] public int UnitI