假设我想通过主键反射动态创建一个 SQL SELECT 语句。我在表中搜索主键,然后做出声明。
问题是,在获取主键之前,我不知道构成主键的字段类型。所以,如果它是一个字符串或日期,我必须添加引号,但如果它是一个 int。
自动取款机,我正在这样做:
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 但我遇到了同样的问题
有谁知道更好的解决方案?