public IKeyInfo FindKey(MemberInfo[] members, bool strictOrder, bool unique)
        {
            if (!strictOrder)
            {
                members = members.OrderBy(m => m.Name).ToArray();
            }

            IEnumerable<IKeyInfo> keys = unique ? this.AllUniqueKeys : this.AllKeys;

            foreach (IKeyInfo key in this.AllKeys)
            {
                MemberInfo[] keyMembers = key.EntityKeyMembers;

                if (!strictOrder)
                {
                    keyMembers = keyMembers.OrderBy(m => m.Name).ToArray();
                }

                if (members.SequenceEqual(keyMembers))
                {
                    return key;
                }
            }

            return null;
        }