SQLのIsNumeric関数と同等のLinqの関数を使用する必要があります。私がやろうとしているのは、一般的なパターンに一致するコードを取得することです。コードは一意である必要があり、コードによって生成されます。パターンは次のようになります。
ABCD0000001ABCD0000002..。
ただし、ユーザーはコードを操作して、生成されたコードの任意の場所に任意の文字を入力できます(もちろん、後でコードの一意性を確認しますが、それは興味深いことではありません)。したがって、データベース内のレコードは次のようになります。
ABCD0000001 ABCD00000T01ABCDT0000002..など。
私が欲しいのは、プログラムで生成された(ユーザーが操作しない)最後のコードを取得し、最後の数字を取得することです。これにより、1ずつ追加して、一意のコードを作成できます。(したがって、最後に自動生成されたコードはABCD0007865であり、新しいコードはABCD0007866である必要があります)
私は試した
var lastCode = (
from c in sedc.Codes
where SqlMethods.Like(c.Code, "ABCD" + "%")
where Int64.TryParse(c.Code.Substring(3,10),out t)
orderby c.Code descending
select c)
.FirstOrDefault();
しかし、このコードはNotSupportedExceptionという例外をスローします:メソッド'Boolean TryParse(System.String、Int32 ByRef)'はSQLへのサポートされた変換を持っていません。 "
私は何をすべきか?私のやり方は複雑すぎますか?より賢い方法はありますか?前もって感謝します。