2011-02-04 5 views
4

私はVisual Studio 2010、Entity Framework 4、およびモデル初の開発を使用しています。
私はVS EDMデザイナでモデル化しましたが、カスタムでedmxファイルを編集してテーブル名を大文字にしました(私の選択ではなく、大文字小文字を区別するデータベースのDBA要件)。 すなわちEDMXのSSDLエントリは次のようになります。私は、その後するデザイナで右クリックしVisual StudioとEntity Framework edmx:私のカスタム編集は上書きされます

<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" /> 

(と私の表=「メッセージ」属性が削除されていることに注意してください)。そうです

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

第二に、それは、次のDDLを作成し、それがメッセージ(大文字)をドロップすることがある知っているが、その後のメッセージ(キャメルケース)を作成したいと考えています。

edmxの編集だけを残して、正しい(大文字の)DDLを生成するにはどうすればよいですか?ありがとう。

+0

この問題を回避する方法を見つけたことがありますか? – cheeesus

答えて

0

EF生成クラスは、「データベースモデルから生成」を実行するたびに変更されるため、変更できません。私はこれの周りに道があるとは思わない。

+1

コメントありがとうございます。私の疑問は明らかだが、生成されるクラス(コード)は問題ではなく、生成されたDDLおよびSSDL(データベース命名)セクションである。 – user603563

0

それはあなたがあなたのコードを再生成するたびにあなたが行った変更が上書きされます

//------------------------------------------------------------------------------ 
// <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> 
//------------------------------------------------------------------------------ 

を使用しているものだ場合、それは失敗

ずに毎回 、(あなたのPOCOクラスのトップでこれを言います

私はそれはいくつかのあいまいな方法やツールを介して行うことができない言っていないんだけど、どれも私は個人を認識していないこと。あなたはテーブルがDに大文字その後、しない理由を大文字する必要があるなら

Bサーバー?または私はここに何かを逃していますか?

+1

stephen776のコミッションと同じです。私は恐れています:応答してくれてありがとうございます。しかし、生成されたクラス(コード)ではなく、生成されたDDLとSSDL(データベース命名)セクションです。 _database-first_アプローチについて説明していますが、_model-first_を使用しています。つまり、EFがデータベーステーブルを作成するためのスクリプトを生成しています。 – user603563

関連する問題