本文整理汇总了C#中System.Linq.Expressions.ConstantExpression.IsQueryable方法的典型用法代码示例。如果您正苦于以下问题:C# ConstantExpression.IsQueryable方法的具体用法?C# ConstantExpression.IsQueryable怎么用?C# ConstantExpression.IsQueryable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Linq.Expressions.ConstantExpression
的用法示例。
在下文中一共展示了ConstantExpression.IsQueryable方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: VisitConstant
protected override Expression VisitConstant(ConstantExpression node)
{
if (node.IsQueryable())
{
mLimitingDataReaderMode = LimitingDataReaderMode.None;
mIsSequence = true;
mElementType = TypeSystem.GetElementType(node.Type);
var schema = @"dbo";
var table = mElementType.Name;
var tableAttributes = mElementType.GetCustomAttributes(typeof(TableAttribute), true).Cast<TableAttribute>();
foreach (var tableAttribute in tableAttributes)
{
if (!string.IsNullOrEmpty(tableAttribute.SchemaName))
schema = tableAttribute.SchemaName;
if (!string.IsNullOrEmpty(tableAttribute.Name))
table = tableAttribute.Name;
}
mText.Append(@"SELECT");
var separator = @" ";
var properties = mElementType.GetProperties(BindingFlags.Public | BindingFlags.Instance)
.Where(a => a.CanRead && a.CanWrite);
foreach (var property in properties)
{
mProperties.Add(property);
var column = GetColumnName(property);
mText.Append(separator);
mText.Append(EncodeSqlName(column));
separator = @", ";
}
mText.Append(@" FROM ");
mText.Append(EncodeSqlName(schema));
mText.Append(@".");
mText.Append(EncodeSqlName(table));
}
else
{
mText.Append(node.Value.ToSqlConstant());
}
return base.VisitConstant(node);
}