本文整理汇总了C#中IDataContext.IsDBNullAllowed方法的典型用法代码示例。如果您正苦于以下问题:C# IDataContext.IsDBNullAllowed方法的具体用法?C# IDataContext.IsDBNullAllowed怎么用?C# IDataContext.IsDBNullAllowed使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IDataContext
的用法示例。
在下文中一共展示了IDataContext.IsDBNullAllowed方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetColumnReader
static Expression GetColumnReader(
IDataContext dataContext, MappingSchema mappingSchema, IDataReader dataReader, Type type, int idx, Expression dataReaderExpr)
{
var ex = dataContext.GetReaderExpression(mappingSchema, dataReader, idx, dataReaderExpr, type.ToNullableUnderlying());
if (ex.NodeType == ExpressionType.Lambda)
{
var l = (LambdaExpression)ex;
switch (l.Parameters.Count)
{
case 1 : ex = l.GetBody(dataReaderExpr); break;
case 2 : ex = l.GetBody(dataReaderExpr, Constant(idx)); break;
}
}
var conv = mappingSchema.GetConvertExpression(ex.Type, type, false);
// Replace multiple parameters with single variable or single parameter with the reader expression.
//
if (conv.Body.GetCount(e => e == conv.Parameters[0]) > 1)
{
var variable = Variable(ex.Type);
var assign = Assign(variable, ex);
ex = Block(new[] { variable }, new[] { assign, conv.GetBody(variable) });
}
else
{
ex = conv.GetBody(ex);
}
// Add check null expression.
//
if (dataContext.IsDBNullAllowed(dataReader, idx) ?? true)
{
ex = Condition(
Call(dataReaderExpr, _isDBNullInfo, Constant(idx)),
Constant(mappingSchema.GetDefaultValue(type), type),
ex);
}
return ex;
}