/// <summary> /// Specify the primary key for this entity<br/> /// 指定实体的主键<br/> /// </summary> public void Id <TPrimaryKey>( Expression <Func <T, TPrimaryKey> > memberExpression, EntityMappingOptions options) { options = options ?? new EntityMappingOptions(); var idMap = base.Map(Expression.Lambda <Func <T, object> >( Expression.Convert(memberExpression.Body, typeof(object)), memberExpression.Parameters)); idMap = idMap.IsKey(); if (typeof(TPrimaryKey) == typeof(int) || typeof(TPrimaryKey) == typeof(long)) { // Recognize integer primary key as auto increment // For now there non explicit option for this idMap = idMap.IsIdentity(); } if (!string.IsNullOrEmpty(options.Column)) { idMap = idMap.ToColumn(options.Column); } if (options.WithSerialization == true) { TypeHandlerRegistrator.RegisterJsonSerializedType(typeof(TPrimaryKey)); } if (typeof(TPrimaryKey) == typeof(Guid)) { TypeHandlerRegistrator.Register(typeof(Guid), new GuidTypeHandler()); } idMember = ((MemberExpression)memberExpression.Body).Member; }
/// <summary> /// Create a member mapping<br/> /// 创建成员映射<br/> /// </summary> public void Map <TMember>( Expression <Func <T, TMember> > memberExpression, EntityMappingOptions options) { options = options ?? new EntityMappingOptions(); var memberMap = base.Map(Expression.Lambda <Func <T, object> >( Expression.Convert(memberExpression.Body, typeof(object)), memberExpression.Parameters)); if (!string.IsNullOrEmpty(options.Column)) { memberMap = memberMap.ToColumn(options.Column); } if (options.WithSerialization ?? false) { TypeHandlerRegistrator.RegisterJsonSerializedType(typeof(TMember)); } ordinaryMembers.Add(((MemberExpression)memberExpression.Body).Member); }
/// <summary> /// Specify the primary key for this entity /// </summary> public void Id <TPrimaryKey>( Expression <Func <T, TPrimaryKey> > memberExpression, EntityMappingOptions options) { options = options ?? new EntityMappingOptions(); var idMap = base.Map(Expression.Lambda <Func <T, object> >( Expression.Convert(memberExpression.Body, typeof(object)), memberExpression.Parameters)); idMap = idMap.IsKey(); if (!string.IsNullOrEmpty(options.Column)) { idMap = idMap.ToColumn(options.Column); } if (options.WithSerialization == true) { TypeHandlerRegistrator.RegisterJsonSerializedType(typeof(TPrimaryKey)); } if (typeof(TPrimaryKey) == typeof(Guid)) { TypeHandlerRegistrator.Register(typeof(Guid), new GuidTypeHandler()); } idMember = ((MemberExpression)memberExpression.Body).Member; }