3

.net 3.5では、linq to sqlデータコンテキストを生成すると、名前を複数形にするためのすばらしい魔法が実行されます。私のコードでは、いくつかの用語を複数形にする必要があります。Linqが複数形を生成するために使用している方法を使用できますか?

4

4 に答える 4

2

リフレクターを使用して、linq-to-sqlデザイナーのコード生成を行うVisualStudioアセンブリを掘り下げる必要があります。

于 2010-08-17T17:14:52.437 に答える
2

LINQ to SQLは、その複数化ロジックを公開しません。Reflectorを簡単にチェックすると、非常に複雑なアルゴリズムを使用していないことがわかります。

'x'、'ch'、'sh'、または'ss'で終わる場合は、'es'を追加します。
子音が前に付いた「y」で終わる場合は、yを削除して「ies」を追加します。
それ以外の場合は、「s」を追加します。

.NET 4がオプションの場合、EFのPluralizationServiceははるかに徹底的です。万が一、「ニューモノウルトラマイクロスコピックシリコボルカノコニオーシス」を複数形にする必要がある場合に備えて。

于 2010-08-17T17:57:33.380 に答える
2

同じ仕事をするInflectorの.NETポートもあります。著者のブログは現在ダウンしていますが、http: //cid-net.googlecode.com/svn/trunk/src/Cid.Mvc/Inflector.csなどで入手できます。

Inflector.Netの代替手段を介して)

于 2010-08-17T18:01:55.137 に答える
0

LINQ to SQLは、複数化のためにかなり単純なシステムを使用します。複雑な用語を扱う場合は、SEDEの一部であるInflectorのようなものを使用することをお勧めします。そのコードはSubSonicプロジェクトに由来しているようです。

于 2010-08-17T18:02:58.967 に答える