Exemplo n.º 1
0
 public void CreateFigureIdentityAttribute(FieldBuilder field, FigureIdentityAttribute attrib)
 {
     field.SetCustomAttribute(new CustomAttributeBuilder(figureIdentityCtor, Type.EmptyTypes,
                                                         new FieldInfo[] { typeof(FigureIdentityAttribute).GetField("Order"),
                                                                           typeof(FigureIdentityAttribute).GetField("IsAutoincrement") },
                                                         new object[] { attrib.Order, attrib.IsAutoincrement }));
 }
Exemplo n.º 2
0
        private void resolveFigureIdentityAttributes(FieldBuilder fb, MemberInfo mi, MemberRubric mr)
        {
            if (!mr.IsKey)
            {
                object[] o = mi.GetCustomAttributes(typeof(FigureIdentityAttribute), false);
                if (o != null && o.Any())
                {
                    FigureIdentityAttribute fia = (FigureIdentityAttribute)o.First();
                    mr.IsIdentity      = true;
                    mr.IsAutoincrement = fia.IsAutoincrement;

                    if (Identities.ContainsKey(fia.Order))
                    {
                        fia.Order = (short)(Identities.LastOrDefault().Key + 1);
                    }

                    mr.IdentityOrder = fia.Order;
                    Identities.Add(mr.IdentityOrder, mr);

                    if (fb != null)
                    {
                        CreateFigureIdentityAttribute(fb, fia);
                    }
                }
                else if (mr.IsIdentity)
                {
                    if (Identities.ContainsKey(mr.IdentityOrder))
                    {
                        mr.IdentityOrder += (short)(Identities.LastOrDefault().Key + 1);
                    }

                    Identities.Add(mr.IdentityOrder, mr);

                    if (fb != null)
                    {
                        CreateFigureIdentityAttribute(fb, new FigureIdentityAttribute()
                        {
                            IsAutoincrement = mr.IsAutoincrement, Order = mr.IdentityOrder
                        });
                    }
                }
            }
        }