JPB.DataAccess.Helper.LocalDb.LocalDbManager.GetMappings C# (CSharp) Method

GetMappings() private method

private GetMappings ( Type thisType ) : IEnumerable
thisType System.Type
return IEnumerable
		internal IEnumerable<ILocalDbReposetoryBaseInternalUsage> GetMappings(Type thisType)
		{
			var mapping = _mappings.Where(f => f.TargetType == thisType).ToArray();
			return _database.Where(f => mapping.Any(e => e.SourceType == f.Key)).Select(f => f.Value);
		}

Usage Example

        private ConstraintException EnforceCheckConstraints(object refItem)
        {
            var refTables = _databaseDatabase.GetMappings(_typeInfo.Type);

            foreach (var localDbReposetory in refTables)
            {
                var fkPropForTypeX =
                    _typeInfo.Propertys.FirstOrDefault(
                        s =>
                        s.Value.ForginKeyDeclarationAttribute != null &&
                        s.Value.ForginKeyDeclarationAttribute.Attribute.ForeignTable ==
                        localDbReposetory.TypeInfo.TableName)
                    .Value;

                if (fkPropForTypeX == null)
                {
                    continue;
                }

                var fkValueForTableX = fkPropForTypeX.Getter.Invoke(refItem);
                if (fkValueForTableX != null && !localDbReposetory.ContainsId(fkValueForTableX))
                {
                    return(new ForginKeyConstraintException(
                               "ForginKey",
                               _typeInfo.TableName,
                               localDbReposetory.TypeInfo.TableName,
                               fkValueForTableX,
                               _typeInfo.PrimaryKeyProperty.PropertyName,
                               fkPropForTypeX.PropertyName));
                }
            }
            return(null);
        }