2011-02-07 2 views
1

私はSQL Serverにasp.net mvcアプリケーションから自分のデータを操作するSQLの概念にLinqを使用しています。 フローの途中で、オブジェクトをシリアル化する必要がありますが、何らかの理由でLINQが循環クラスの関連付けをサポートしていません。C#3.0は部分プロパティの概念をサポートしていますか?

[Scriptingnore]属性は、シリアル化できないプロパティに使用されました。これは正常に動作します。

しかし、フレームワークで生成されたdesigner.csファイルを何度も変更することは避けたいと思います。だから私は、それらのクラスの部分クラスを作成し、これらの部分クラスでそれらのプロパティを部分的にすることができるかどうかについて考えていただけです。そうすれば、designer .csファイルを変更する必要はありません。そのようなコンセプトがあるので、designer.csクラスのプロパティに属性を追加することはできません。そうすれば、.dbmlファイルにテーブルをドラッグするたびに変更を行うことから解放されます。

(デシベルでスライド変更、またはそのクラスの名前テーブルが完全にそのクラスやデザイナーのクラスを再作成する必要があるので、それは私を必要とする)

+1

T4を使ってすべてのソースコードを生成するので、データクラスを生成するためにPOCOテンプレートまたはEntityテンプレートを使用することをお勧めします。いくつかのロジックを追加して循環クラスの関連付けを検出し、プロパティ名を表示する前にシリアライズ属性を無視して書き込むことができます。 –

答えて

3

いいえ、部分的な特性としてはそのような機能はありません。

これは、正直なところ、デザイナーファイルを更新するプロセスを自動化するか、シリアル化を行う方法を変更する以外に、これを使用する最良の方法はわかりません。

+0

あなたは確かにジョンですか?もしそうなら、これは.net framework 3.5の制限だと言うことができますか? –

+0

@Lalit:私は、部分的なプロパティとしてそのようなことは絶対にないと確信しています - そして、最も近い同等の、部分的なメソッドでさえ、これを本当に許さないのです。これはフレームワークの制限ではありません。言語はこのようなことを許すことができますが、将来のバージョンでは起こりそうにない状況は十分にないと思われます。 –

+0

大丈夫、私はあなたに同意します。しかし、あなたは私のアプリケーションでこの状況を整理する何らかの方法を提案できますか? –

関連する問題