NLite.Data.EFDataAnnotiationAdapter.Init C# (CSharp) Method

Init() public static method

public static Init ( Assembly asm ) : void
asm System.Reflection.Assembly
return void
        public static void Init(Assembly asm)
        {
            #if  SDK35 || SDK4
            if (!asm.GetName().Version.ToString().Contains("4.3"))
            {
                StrNotMappedAttribute = "System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute";
                StrTableAttribute = "System.ComponentModel.DataAnnotations.Schema.TableAttribute";
                StrColumnAttribute = "System.ComponentModel.DataAnnotations.Schema.ColumnAttribute";
                StrDatabaseGeneratedAttribute = "System.ComponentModel.Schema.DataAnnotations.DatabaseGeneratedAttribute";
                StrForeignKeyAttribute = "System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute";
            }

            EFDataAnnotiationAdapter.NotMappedAttributeType = asm.GetType(StrNotMappedAttribute);
            EFDataAnnotiationAdapter.TableAttributeType = asm.GetType(StrTableAttribute);
            EFDataAnnotiationAdapter.ColumndAttributeType = asm.GetType(StrColumnAttribute);
            EFDataAnnotiationAdapter.DatabaseGeneratedAttributeType = asm.GetType(StrDatabaseGeneratedAttribute);
            EFDataAnnotiationAdapter.MaxLengthAttributeType = asm.GetType(StrMaxLengthAttribute);
            EFDataAnnotiationAdapter.ForeignKeyAttributeType = asm.GetType(StrForeignKeyAttribute);
            #else //>=SDK4.5
            asm = AssemblyLoader.Load("System.ComponentModel.DataAnnotations");
            Guard.NotNull(asm, "asm");

            StrNotMappedAttribute = "System.ComponentModel.DataAnnotations.Schema.NotMappedAttribute";
            StrTableAttribute = "System.ComponentModel.DataAnnotations.Schema.TableAttribute";
            StrColumnAttribute = "System.ComponentModel.DataAnnotations.Schema.ColumnAttribute";
            StrDatabaseGeneratedAttribute = "System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedAttribute";
            StrForeignKeyAttribute = "System.ComponentModel.DataAnnotations.Schema.ForeignKeyAttribute";

            EFDataAnnotiationAdapter.NotMappedAttributeType = asm.GetType(StrNotMappedAttribute);
            EFDataAnnotiationAdapter.TableAttributeType = asm.GetType(StrTableAttribute);
            EFDataAnnotiationAdapter.ColumndAttributeType = asm.GetType(StrColumnAttribute);
            EFDataAnnotiationAdapter.DatabaseGeneratedAttributeType = asm.GetType(StrDatabaseGeneratedAttribute);
            EFDataAnnotiationAdapter.MaxLengthAttributeType = asm.GetType(StrMaxLengthAttribute);
            EFDataAnnotiationAdapter.ForeignKeyAttributeType = asm.GetType(StrForeignKeyAttribute);

            #endif

            var instance = new EFDataAnnotiationAdapter();
            instance.Table = new TableAttribute();
            instance.Table.Schema = EFDataAnnotiationAdapter.TableAttributeType.GetProperty("Schema").GetGetter();
            instance.Table.Name = EFDataAnnotiationAdapter.TableAttributeType.GetProperty("Name").GetGetter();

            instance.Column = new ColumnAttribute();
            instance.Column.Name = EFDataAnnotiationAdapter.ColumndAttributeType.GetProperty("Name").GetGetter();
            instance.Column.TypeName = EFDataAnnotiationAdapter.ColumndAttributeType.GetProperty("TypeName").GetGetter();

            instance.DatabaseGenerated = new DatabaseGeneratedAttribute();
            instance.DatabaseGenerated.DatabaseGeneratedOption = EFDataAnnotiationAdapter.DatabaseGeneratedAttributeType.GetProperty("DatabaseGeneratedOption").GetGetter();

            instance.ForeignKey = new ForeignKeyAttribute();
            instance.ForeignKey.Name = EFDataAnnotiationAdapter.ForeignKeyAttributeType.GetProperty("Name").GetGetter();

            instance.MaxLength = new MaxLengthAttribute();
            instance.MaxLength.Length = EFDataAnnotiationAdapter.MaxLengthAttributeType.GetProperty("Length").GetGetter();
            Instance = instance;
        }

Usage Example

コード例 #1
0
        private static void PopulateEFTableAttribute(Type type, EntityMapping mapping, object att)
        {
            if (EFDataAnnotiationAdapter.Instance == null)
            {
                EFDataAnnotiationAdapter.Init(att.GetType().Assembly);
            }
            var tableName  = EFDataAnnotiationAdapter.Instance.Table.Name(att) as string;
            var schemaName = EFDataAnnotiationAdapter.Instance.Table.Schema(att) as string;

            PopulateTableName(mapping, tableName, type.Name);

            if (schemaName.HasValue())
            {
                mapping.schema = schemaName;
            }
        }
All Usage Examples Of NLite.Data.EFDataAnnotiationAdapter::Init
EFDataAnnotiationAdapter