2011-01-19 20 views
0

私は現在、dbmlとコードファイルを生成するのにSqlMetalを使用しています。私はVisual Studio 2010SqlServer 2000を使用しています。残念ながらVisual Studio 2010のみSqlServer 2005以上をサポートしていますので、組み込みウィザードを使用してコードを生成することはできません。LINQtoSQL:マップファイルとは何ですか?

私が使用して私のDBMLとコードファイルを生成されています:

>sqlmetal /server:myServer /database:myDatabase /dbml:myDatabase.dbml 
>sqlmetal /code:myDatabase.cs myDatabase.dbml 

私はマップファイルのオプションがあります気づきました。

属性の代わりにXMLマッピングファイルを生成します。/dbmlオプションと一緒に使用することはできません。

MSDN on SqlMetal.exe

私もマップファイルを使用する必要があります場合、私は不思議でしたか?コード属性に対するマップファイルのメリットは何ですか?

答えて

1

参照:http://msdn.microsoft.com/en-us/library/bb386907.aspx(マッピング) 参照:http://msdn.microsoft.com/en-us/library/bb386971.aspx(属性)

Basciallyあなたが代わりにアプリケーションコードとは別のマッピングコードを維持することになっているDBMLの外部マッピングファイル(POX)を使用することができます。

再コンパイルせずにマッピングを変更できるようにする必要がある場合やマッピングを厳密に制御する必要がある場合を除き、私はDBMLを使用します。マップファイルは変更されません。 dbmlの可能性があります(カスタム変更を削除することがあります)。

+0

私はそれをnp ++で比較しました。唯一の違いは属性です。地図ファイルは一般的な目的では役に立たないようです。私は、データベースに変更がある場合、マップファイルが処理できるよりも深いことになると思います。私はdbmlに固執するつもりです。ありがとうございました! –

関連する問題