4

Visual Studio 2010、Entity Framework 4、およびモデル ファースト開発を使用しています。
VS EDM デザイナーでモデリングし、edmx ファイルをカスタム編集して、テーブル名が大文字になるようにしました (名前の大文字と小文字を区別するデータベースの DBA 要件ではありません)。つまり、edmx ssdl エントリは次のようになります。

<EntitySet Name="MESSAGES" EntityType="SIMPLEPIX.STORE.MESSAGES" store:Type="Tables" Schema="MW_ARCHIVE" Table="MESSAGES" />

次に、デザイナーで右クリックして「モデルからデータベースを生成...」を選択します。これにより、2 つのことが行われます。まず、すべての edmx 編集をキャメル ケースに戻します。つまり、上記の行は次のようになります。

<EntitySet Name="Messages" EntityType="SimplePix.Store.Messages" store:Type="Tables" Schema="MW_ARCHIVE" />

(そして、 Table="MESSAGES"属性が削除されていることに注意してください)。

次に、次の DDL を作成します。

[snip]
IF OBJECT_ID(N'[MW_ARCHIVE].[MESSAGES]', 'U') IS NOT NULL
    DROP TABLE [MW_ARCHIVE].[MESSAGES];
[snip]
CREATE TABLE [MW_ARCHIVE].[Messages] (
[snip]

そうです: MESSAGES (大文字) をドロップする必要があることはわかっていますが、メッセージ (キャメル ケース) を作成したいと考えています。

VS に edmx 編集をそのままにして、正しい (大文字の) DDL を生成させるにはどうすればよいですか? どうもありがとう。

4

2 に答える 2

0

「データベースモデルから生成」を実行するたびに変更されるため、EF 生成クラスを変更することはできません。これを回避する方法はないと思います。

于 2011-02-04T18:25:21.780 に答える
0

POCOクラスの上部にこれが表示されます(それが使用している場合

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated from a template.
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

コードを再生成するたびに、行った変更は必ず上書きされます

あいまいな方法やツールを使用してそれを行うことができないと言っているわけではありませんが、私が個人的に認識しているものはありません.

テーブルを大文字にする必要がある場合、DBサーバーで大文字にしないのはなぜですか? それとも、ここで何か不足していますか?

于 2011-02-05T12:58:49.590 に答える