レガシーデータベース用にいくつかのCRUD機能を作成し、EntityFrameworkをORMツールとして使用しようとしています。1つのテーブル「Sites」には、ユーザーには表示されないGuidタイプの「Id」列と、ユーザーがサイトを識別するために使用する整数タイプの「SiteId」があります。
神は、データベース内の数値のSiteId列がvarchar(10)型である理由を知っていますが、そこにあるすべてのSiteIdは整数であり、将来のすべてのSiteIdも整数になります。
新しい一意の整数型SiteIdを生成するために、エンティティSQLまたはLinq to Enitiesを使用して「SELECTMAX(SiteId)」を効果的に実行するにはどうすればよいですか?
言い換えると、varchar(10)の列のすべての値をintに変換し、そのセットから最大値を選択するにはどうすればよいですか?
これは有望に見えましたが、linqは解析を「ストアプロシージャ」に変換できません...
int x = entities.Sites.Max(s => int.Parse(s.SiteId));