Simple.Metadata.DbTable.ExecuteOutFkCache C# (CSharp) Method

ExecuteOutFkCache() public method

public ExecuteOutFkCache ( ) : void
return void
        public void ExecuteOutFkCache()
        {
            //all foreign keys columns grouped by fk name
            var keys = new HashSet<DbColumnName>(PrimaryKeyColumns.Select(x => x as DbColumnName));

            var safe = OutRelations.GroupBy(x => x.FkColumnRef.TableRef).ToDictionary(x => x.Key, x => x.Count());

            ManyToOneRelations = OutRelations.GroupBy(x => x.Name).Select(x => new DbManyToOne(Context, x.ToList())
            {
                IsKey = x.Any(y => keys.Contains(y.FkColumnRef)),
                SafeNaming = safe[x.First().FkColumnRef.TableRef] == 1
            });
        }