主キーを反映したSQLSELECTステートメントを動的に作成するとします。テーブルで主キーを検索してから、ステートメントを作成します。
問題は、取得する前に主キーを構成するフィールドのタイプがわからないことです。したがって、文字列または日付の場合は引用符を追加する必要がありますが、intの場合は追加しないでください。
Atm、私はそのようにやっています:
var type = field.GetType().Name;
if (type.ToLower().StartsWith("string") || type.ToLower().StartsWith("date"))
{
field = "\"" + field + "\"";
} else if (type.ToLower().StartsWith("char"))
{
field = "\'" + field + "\'";
}
このコードを使用すると、いくつかのSQLタイプを処理できますが、さらに多くのタイプがあります。
私の問題は、LinQと組み合わされていることです。コンテキストからDataContextオブジェクトとジェネリック型テーブルを取得しました。また、context.ExecuteQueryは、パラメーターに値を渡すことのみを許可します。Dynamic LinQも試しましたが、同じ問題が発生しました
誰かがより良い解決策を知っていますか?