本文整理汇总了C#中IObjectSpace.CreateCollection方法的典型用法代码示例。如果您正苦于以下问题:C# IObjectSpace.CreateCollection方法的具体用法?C# IObjectSpace.CreateCollection怎么用?C# IObjectSpace.CreateCollection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IObjectSpace
的用法示例。
在下文中一共展示了IObjectSpace.CreateCollection方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: findApplicationObjectByReplicationKey
/// <summary>
/// Finds the application object by replication key.
/// </summary>
/// <param name="classType">Type of the class.</param>
/// <param name="reference">The reference.</param>
/// <param name="objectSpace">The object space.</param>
/// <returns>Application object</returns>
private static object findApplicationObjectByReplicationKey(Type classType,
IObjectReference reference, IObjectSpace objectSpace)
{
object result = null;
var modelClass = XafDeltaModule.XafApp.FindModelClass(classType);
if (modelClass != null && reference.ReplicationKey != null)
{
var replicationKeyMember = ExtensionsHelper.GetReplicationKeyMember(modelClass.TypeInfo);
var replicationKeyIsCaseInsensitive = modelClass.ReplicationKeyIsCaseInsensitive();
var replicationKeyIsSpaceInsensitive = modelClass.ReplicationKeyIsSpaceInsensitive();
if (replicationKeyMember != null)
{
CriteriaOperator opLeft = new OperandProperty(replicationKeyMember.Name);
CriteriaOperator opRight = new OperandValue(reference.ReplicationKey);
if (replicationKeyIsCaseInsensitive)
{
opLeft = new FunctionOperator(FunctionOperatorType.Upper, opLeft);
opRight = new FunctionOperator(FunctionOperatorType.Upper, opRight);
}
if (replicationKeyIsSpaceInsensitive)
{
opLeft = new FunctionOperator(FunctionOperatorType.Replace, opLeft,
new OperandValue(" "), new OperandValue(String.Empty));
opRight = new FunctionOperator(FunctionOperatorType.Replace, opRight,
new OperandValue(" "), new OperandValue(String.Empty));
}
var keyCriteria = new BinaryOperator(opLeft, opRight, BinaryOperatorType.Equal);
if(replicationKeyMember.MemberInfo.IsAliased)
{
var list = objectSpace.CreateCollection(modelClass.TypeInfo.Type);
result = (from c in list.Cast<object>()
let objKeyValue = replicationKeyMember.MemberInfo.GetValue(c)
where keysMatches(objKeyValue, reference.ReplicationKey,
replicationKeyIsCaseInsensitive, replicationKeyIsSpaceInsensitive)
select c).FirstOrDefault();
}
else
result = objectSpace.FindObject(classType, keyCriteria, true);
}
}
return result;
}