Inheritance: ISerializable
        public void AddMember(UserTypeMember member)
        {
            if (member == null)
            {
                throw new ArgumentNullException("member");
            }

            if (member.MemberType.IsLargeObject)
            {
                throw new ArgumentException(String.Format("Cannot add member '{0}' of type '{1}' to type '{2}'.", member.MemberName,
                                                          member.MemberType, TypeName));
            }

            if (members == null)
            {
                members = new List <UserTypeMember>();
            }

            if (members.ToDictionary(x => x.MemberName, y => y, StringComparer.OrdinalIgnoreCase)
                .ContainsKey(member.MemberName))
            {
                throw new ArgumentException(String.Format("A member named '{0}' is already present in type '{1}'.",
                                                          member.MemberName, member.MemberType));
            }

            members.Add(member);
            memberNamesCache.Clear();
        }
Example #2
0
        public CreateTypeStatement(ObjectName typeName, UserTypeMember[] members, bool replaceIfExists)
        {
            if (typeName == null)
                throw new ArgumentNullException("typeName");
            if (members == null)
                throw new ArgumentNullException("members");

            if (members.Length == 0)
                throw new ArgumentException("At least one member must be specified.");

            TypeName = typeName;
            Members = members;
            ReplaceIfExists = replaceIfExists;
        }
        public UserTypeMember AddMember(string memberName, SqlType memberType)
        {
            if (String.IsNullOrEmpty(memberName))
            {
                throw new ArgumentNullException("memberName");
            }
            if (memberType == null)
            {
                throw new ArgumentNullException("memberType");
            }

            try {
                var member = new UserTypeMember(memberName, memberType);
                AddMember(member);
                return(member);
            } finally {
                memberNamesCache.Clear();
            }
        }
Example #4
0
 public CreateTypeStatement(ObjectName typeName, UserTypeMember[] members)
     : this(typeName, members, false)
 {
 }
        public void CreateSimpleType()
        {
            var typeName = ObjectName.Parse("APP.type1");
            var members = new UserTypeMember[] {
                new UserTypeMember("id", PrimitiveTypes.Integer()),
                new UserTypeMember("name", PrimitiveTypes.VarChar())
            };

            var statement = new CreateTypeStatement(typeName, members);

            SerializeAndAssert(statement, (serialized, deserialized) => {
                Assert.IsNotNull(deserialized);
                Assert.IsNotNull(deserialized.TypeName);
                Assert.AreEqual(typeName, deserialized.TypeName);
                Assert.IsNotNull(deserialized.Members);
                Assert.IsNotEmpty(deserialized.Members);
                Assert.AreEqual(2, deserialized.Members.Length);
            });
        }
Example #6
0
        public void AddMember(UserTypeMember member)
        {
            if (member == null)
                throw new ArgumentNullException("member");

            if (member.MemberType.IsLargeObject)
                throw new ArgumentException(String.Format("Cannot add member '{0}' of type '{1}' to type '{2}'.", member.MemberName,
                    member.MemberType, TypeName));

            if (members == null)
                members = new List<UserTypeMember>();

            if (members.ToDictionary(x => x.MemberName, y => y, StringComparer.OrdinalIgnoreCase)
                .ContainsKey(member.MemberName))
                throw new ArgumentException(String.Format("A member named '{0}' is already present in type '{1}'.",
                    member.MemberName, member.MemberType));

            members.Add(member);
            memberNamesCache.Clear();
        }
Example #7
0
        public UserTypeMember AddMember(string memberName, SqlType memberType)
        {
            if (String.IsNullOrEmpty(memberName))
                throw new ArgumentNullException("memberName");
            if (memberType == null)
                throw new ArgumentNullException("memberType");

            try {
                var member = new UserTypeMember(memberName, memberType);
                AddMember(member);
                return member;
            } finally {
                memberNamesCache.Clear();
            }
        }