本文整理汇总了C#中DataStrategy.GetAdapter方法的典型用法代码示例。如果您正苦于以下问题:C# DataStrategy.GetAdapter方法的具体用法?C# DataStrategy.GetAdapter怎么用?C# DataStrategy.GetAdapter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DataStrategy
的用法示例。
在下文中一共展示了DataStrategy.GetAdapter方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CreateDelegate
public Func<object[], object> CreateDelegate(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
var func = dataStrategy.GetAdapter().OptimizingDelegateFactory.CreateGetDelegate(dataStrategy.GetAdapter(),
table.GetName(), args);
return a =>
{
var data = func(a);
return (data != null && data.Count > 0)
? new SimpleRecord(data, table.GetQualifiedName(), dataStrategy)
: null;
};
}
示例2: CreateDelegate
public Func<object[], object> CreateDelegate(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
if (dataStrategy is SimpleTransaction) return null;
if (binder.Name.Equals("FindBy") || binder.Name.Equals("find_by"))
{
ArgumentHelper.CheckFindArgs(args, binder);
if (args.Length == 1 && args[0].IsAnonymous()) return null;
}
var criteriaDictionary = ArgumentHelper.CreateCriteriaDictionary(binder, args, "FindBy", "find_by");
if (criteriaDictionary == null) return null;
var criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), criteriaDictionary);
try
{
var adapter = dataStrategy.GetAdapter();
var func = adapter.OptimizingDelegateFactory.CreateFindOneDelegate(adapter, table.GetQualifiedName(), criteriaExpression);
return a =>
{
var data = func(a);
return (data != null && data.Count > 0)
? new SimpleRecord(data, table.GetQualifiedName(), dataStrategy)
: null;
};
}
catch (NotImplementedException)
{
return null;
}
}
示例3: CreateDelegate
public Func<object[], object> CreateDelegate(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
if (dataStrategy is SimpleTransaction) return null;
var criteriaDictionary = CreateCriteriaDictionary(binder, args);
if (criteriaDictionary == null) return null;
var criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), criteriaDictionary);
try
{
var adapter = dataStrategy.GetAdapter();
var func = adapter.OptimizingDelegateFactory.CreateFindOneDelegate(adapter, table.GetQualifiedName(), criteriaExpression);
return a =>
{
var data = func(a);
return (data != null && data.Count > 0)
? new SimpleRecord(data, table.GetQualifiedName(), dataStrategy)
: null;
};
}
catch (NotImplementedException)
{
return null;
}
}
示例4: CreateDelegate
public Func<object[], object> CreateDelegate(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
if (dataStrategy is SimpleTransaction) return null;
if (binder.Name.Equals("FindBy") || binder.Name.Equals("find_by"))
{
if (args.Length == 0) throw new ArgumentException("FindBy requires arguments.");
if (args.Length == 1)
{
if (ReferenceEquals(args[0], null)) throw new ArgumentException("FindBy does not accept unnamed null argument.");
if (args[0].GetType().Namespace == null) return null;
}
}
var criteriaDictionary = CreateCriteriaDictionary(binder, args);
if (criteriaDictionary == null) return null;
var criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), criteriaDictionary);
try
{
var adapter = dataStrategy.GetAdapter();
var func = adapter.OptimizingDelegateFactory.CreateFindOneDelegate(adapter, table.GetQualifiedName(), criteriaExpression);
return a =>
{
var data = func(a);
return (data != null && data.Count > 0)
? new SimpleRecord(data, table.GetQualifiedName(), dataStrategy)
: null;
};
}
catch (NotImplementedException)
{
return null;
}
}
示例5: Execute
public object Execute(DataStrategy dataStrategy, SimpleQuery query, InvokeMemberBinder binder, object[] args)
{
var keyNames = dataStrategy.GetAdapter().GetKeyNames(query.TableName);
var dict = keyNames.Select((k, i) => new KeyValuePair<string, object>(k, args[i]));
query = query.Where(ExpressionHelper.CriteriaDictionaryToExpression(query.TableName, dict)).Take(1);
var result = query.FirstOrDefault();
if (result == null) return null;
return binder.Name.Equals("get", StringComparison.OrdinalIgnoreCase) ? result : ((IDictionary<string, object>) result).First().Value;
}
示例6: Execute
/// <summary>
/// Executes the command.
/// </summary>
/// <param name="dataStrategy">The database or transaction</param>
/// <param name="table"></param>
/// <param name="binder">The binder from the <see cref="DynamicTable"/> method invocation.</param>
/// <param name="args">The arguments from the <see cref="DynamicTable"/> method invocation.</param>
/// <returns></returns>
public object Execute(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
if (args.Length == 1 && args[0] is SimpleExpression)
{
return new SimpleQuery(dataStrategy.GetAdapter(), table.GetQualifiedName()).Where((SimpleExpression)args[0]);
}
return null;
}
示例7: AutoCompleter
public AutoCompleter(DataStrategy database)
{
if (database != null)
{
var adoAdapter = database.GetAdapter() as AdoAdapter;
if (adoAdapter != null)
{
_schemaProvider = adoAdapter.SchemaProvider;
}
}
}
示例8: Execute
public object Execute(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
if (args.Length != 1) throw new ArgumentException("Incorrect number of arguments to Update method.");
var keyFieldNames = dataStrategy.GetAdapter().GetKeyFieldNames(table.GetQualifiedName()).ToArray();
if (keyFieldNames.Length == 0)
{
throw new NotSupportedException("Adapter does not support key-based update for this object.");
}
return UpdateByKeyFields(table.GetQualifiedName(), dataStrategy, args[0], keyFieldNames);
}
示例9: UpdateUsingKeys
private static object UpdateUsingKeys(DataStrategy dataStrategy, DynamicTable table, object[] args)
{
var record = ObjectToDictionary(args[0]);
var list = record as IList<IDictionary<string, object>>;
if (list != null) return dataStrategy.Run.UpdateMany(table.GetQualifiedName(), list);
var dict = record as IDictionary<string, object>;
if (dict == null) throw new InvalidOperationException("Could not resolve data from passed object.");
var key = dataStrategy.GetAdapter().GetKey(table.GetQualifiedName(), dict);
dict = dict.Where(kvp => key.All(keyKvp => keyKvp.Key.Homogenize() != kvp.Key.Homogenize())).ToDictionary();
var criteria = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), key);
return dataStrategy.Run.Update(table.GetQualifiedName(), dict, criteria);
}
示例10: Execute
public object Execute(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
SimpleExpression criteriaExpression;
if (binder.Name.Equals("FindAllBy") || binder.Name.Equals("find_all_by"))
{
criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), binder.NamedArgumentsToDictionary(args));
}
else
{
criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), MethodNameParser.ParseFromBinder(binder, args));
}
return new SimpleQuery(dataStrategy.GetAdapter(), table.GetQualifiedName()).Where(criteriaExpression);
}
示例11: CreateDelegate
public Func<object[], object> CreateDelegate(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
throw new NotImplementedException();
var criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), MethodNameParser.ParseFromBinder(binder, args));
try
{
var func = dataStrategy.GetAdapter().CreateFindDelegate(table.GetQualifiedName(), criteriaExpression);
return a => CreateSimpleResultSet(table, dataStrategy, func(a));
}
catch (NotImplementedException)
{
return null;
}
}
示例12: UpsertUsingKeys
private static object UpsertUsingKeys(DataStrategy dataStrategy, DynamicTable table, object[] args, bool isResultRequired)
{
var record = ObjectToDictionary(args[0]);
var list = record as IList<IDictionary<string, object>>;
if (list != null)
{
ErrorCallback errorCallback = (args.Length == 2 ? args[1] as ErrorCallback : null) ??
((item, exception) => false);
return dataStrategy.Run.UpsertMany(table.GetQualifiedName(), list, isResultRequired, errorCallback);
}
var dict = record as IDictionary<string, object>;
if (dict == null) throw new InvalidOperationException("Could not resolve data from passed object.");
var key = dataStrategy.GetAdapter().GetKey(table.GetQualifiedName(), dict);
if (key == null) throw new InvalidOperationException(string.Format("No key columns defined for table \"{0}\"",table.GetQualifiedName()));
var criteria = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), key);
return dataStrategy.Run.Upsert(table.GetQualifiedName(), dict, criteria, isResultRequired);
}
示例13: CreateSimpleQuery
private static object CreateSimpleQuery(DynamicTable table, InvokeMemberBinder binder, object[] args, DataStrategy dataStrategy)
{
var criteriaExpression = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), MethodNameParser.ParseFromBinder(binder, args));
return new SimpleQuery(dataStrategy.GetAdapter(), table.GetQualifiedName()).Where(criteriaExpression);
}
示例14: Execute
/// <summary>
/// Executes the command.
/// </summary>
/// <param name="dataStrategy">The data strategy.</param>
/// <param name="table"></param>
/// <param name="binder">The binder from the <see cref="DynamicTable"/> method invocation.</param>
/// <param name="args">The arguments from the <see cref="DynamicTable"/> method invocation.</param>
/// <returns></returns>
public object Execute(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
var criteria = ExpressionHelper.CriteriaDictionaryToExpression(table.GetQualifiedName(), MethodNameParser.ParseFromBinder(binder, args));
return new SimpleQuery(dataStrategy.GetAdapter(), table.GetQualifiedName()).Where(criteria).Count();
}
示例15: CreateDelegate
public Func<object[], object> CreateDelegate(DataStrategy dataStrategy, DynamicTable table, InvokeMemberBinder binder, object[] args)
{
return a => new SimpleQuery(dataStrategy.GetAdapter(), table.GetQualifiedName());
}