私は、ホスト名を保持する文字列フィールドを持つテーブルを持っています。彼らは主に完全修飾ドメイン名ですが、何年にもわたって、様々なDNSの変更が私たちに与えられているため、最初の "ドット"の後のドメインビットが変更されています。私は、多くの場合、「現在」のホスト名と、この歴史的なストアに対して比較を行う必要があるC#Linq文字列とindexOfの比較
tom.company.com
tom.it.company.com
tom.newComapnyBranding.com
...
:だから私は、としてテーブルにあるマシン「タム」を持っているかもしれません。
WHERE
UPPER(SUBSTRING(@foo, 1, CHARINDEX(".", @foo))) =
UPPER(SUBSTRING(myDB.myTable.machineName, 1, CHARINDEX(".", myDB.myTable.machineName)))
[OK]をこれらのいずれかをLinqクエリに変換しようとしていますが、「インデックス」の部分に遭遇しています。
myTable.machineName.ToUpper().Substring(0, myTable.machineName.IndexOf("."))
.Equals(foo.ToUpper().Substring(0, foo.IndexOf(".")))
でも、「IndexOf」についてビジュアルスタジオから不満があります。
IndexOf(".", StringComparison.Ordinal))
が、私はそれを実行したときに、私は、例外メッセージを取得:それは私はIndexOfメソッドを変更する必要があると主張し
LINQ to Entities does not recognize the method 'Int32 IndexOf(System.String,
System.StringComparison)' method, and this method cannot be translated into
a store expression
をどのようにLINQの中にインデックスを付け基づくサブのこの種を行うのですか?
あなたのフォローの質問では、と他の人を許す、それぞれの質問には依存せず、明確かつ具体的な対象とすることができ、新しい質問に移動してください同じ問題(個別)が解決策に到達する。 –