Entity Framework使用建模之Code First 一对多

使用这种方式请首先安装EntityFramework4.1.exe,您可以去这里下载:

ADO.NETEntity Framework 4.1

Code First是EF建模的第三种方式,也是最灵活的一种方式,这种方式需要自己手动编写代码实现实体对象、对象关系,并提供注解映射信息,这种方式的本质是将基于图形界面的Model First设计方式改为基于手动编写代码的方式,这并不意味着code就效率低下,通过代码生成工具支持,开发效率一样很高。

一对多的示例

一个游戏账号可以创建多个游戏角色

/// <summary>
    /// 游戏账号
    /// 通过Data Annotations实现实体到数据库结构的映射
    /// </summary>
    [Table("GameUsers")]
    public class GameUser
    {
        [Key]
        //[Column("GAME_USER_ID")]        
        [MaxLength(8)]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public string GameUserID { get; set; }

        [Column("GAME_USER_NAME")]
        [Required]
        [MaxLength(32)]
        public string GameUserName { get; set; }

        [Column("GAME_USER_PASSWORD")]
        [MaxLength(16)]
        public string GameUserPassword { get; set; }

        
        public DateTime GameUserTime { get; set; }

        /// <summary>
        /// 该属性不被映射
        /// </summary>
        [NotMapped]
        public string Comment { get; set; }

        [ConcurrencyCheck]
        [Timestamp]
        public byte[] TimeStamp { get; set; }

        /// <summary>
        /// 游戏账户档案
        /// </summary>
        public GameUserArchive GameUserArchive { get; set; }
        
        public virtual ICollection<GameRole> GameRoles { get; set; }

    }        [Key]
        //[Column("GAME_USER_ID")]        
        [MaxLength(8)]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public string GameUserID { get; set; }

        [Column("GAME_USER_NAME")]
        [Required]
        [MaxLength(32)]
        public string GameUserName { get; set; }

        [Column("GAME_USER_PASSWORD")]
        [MaxLength(16)]
        public string GameUserPassword { get; set; }

        [MaxLength(16)]
        public DateTime GameUserTime { get; set; }

        /// <summary>
        /// 该属性不被映射
        /// </summary>
        [NotMapped]
        public string Comment { get; set; }

        [ConcurrencyCheck]
        [Timestamp]
        public byte[] TimeStamp { get; set; }

        /// <summary>
        /// 游戏账户档案
        /// </summary>        
        public GameUserArchive GameUserArchive { get; set; }
        
        public virtual ICollection<GameRole> GameRoles { get; set; }

    }


                
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值