zoukankan      html  css  js  c++  java
  • 基于注解的EF

    首先得你的ef dll版本在4.1以上  

    第一步贴第一个类

    由于字段太多就写一部分 

     [Table("NavF")]//设置表名称
        public class NavF
        {
            [Key]//主键
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]//设置自增
            public int ID { get; set; }
            [Required]//要求所需字段不能为空
            [MaxLength(500)]//字段最大长度
            [Column("NTitle")]//设置映射到数据库的名称
            public string NTitle { get; set; }
            [Required]
            [Column("NOrder")]
            public int NOrder { get; set; }
            [Required]
            [MaxLength(10)]
            [Column("NType")]
            public string NType { get; set; }
            public IList<NavT> navTList = new List<NavT>();//设置关联属性
            public virtual IList<NavT> NavTList
            {
                get { return navTList; }
                set { navTList = value; }
            }
        }

    [Table("NavT")]
        public class NavT
        {
            [Key]
            [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
            public int ID { get; set; }
            [Required]
            [MaxLength(500)]
            [Column("NTitle")]
            public string NTitle { get; set; }
            [Required]
            [MaxLength(500)]
            [Column("Note")]
            public string Note { get; set; }
            public int NavF_ID { get; set; }//外键名称
            private NavF navF;
            [ForeignKey("NavF_ID")]//映射外键名称
            public NavF NavF
            {
                get { return navF; }
                set { navF = value; }
            }
        }

    -------------------------------------------------- 

    第二部就是 DBcontext类

        

     public class DBContextStu : DbContext
        {
            public DBContextStu() : base("constr")
            {
                Database.SetInitializer(
                    new DropCreateDatabaseIfModelChanges<DBContextStu>());//只要发生改变就删除数据库
                //Database.SetInitializer(
                //        new CreateDatabaseIfNotExists<DBContextStu>());  //不存在才进行创建
            }
            public DbSet<NavF> NavF { get; set; }
            public DbSet<NavT> NavT { get; set; }
      
        }

    =============================================================

     第三部数据库连接字符串constr与dbcontext类中的构造函数参数一致

    <add name="constr" connectionString="Data Source=.;Initial Catalog=AST;User ID=sa;Password=sa" providerName="System.Data.SqlClient" /> 

    -------------------------------------------------------------------------------------------------- 

    数据库操作下一节一个dal通用类封装得不是很好 

     关于这个管理属性添加数据有点麻烦  

        public DBContextStu db = new DBContextStu();

    public int AddORUpdate(NavT modelT, int PID)
            {
                NavF model=db.NavF.Single(u => u.ID == PID);
                modelT.NavF = model;
                modelT.NavF_ID = PID;
                db.NavT.AddOrUpdate(modelT);
                //Console.WriteLine(db.NavT.ToList().Count);
                return db.SaveChanges();
            }
  • 相关阅读:
    我的管理/创业类文章
    去硅谷之前写的文章.
    【Linux资源管理】一款优秀的linux监控工具——nmon
    Oracle 11g密码过期问题
    HP-UNIX平台修改Oracle processes参数报错:ORA-27154、ORA-27300、ORA-27301、ORA-27302
    [转]收集Oracle UNDO诊断信息脚本
    【Linux资源管理】使用sar进行性能分析
    Oracle ASM
    Oracle oerr工具介绍
    Oracle分区表删除分区引发错误ORA-01502: 索引或这类索引的分区处于不可用状态
  • 原文地址:https://www.cnblogs.com/MyKingDragon/p/4196471.html
Copyright © 2011-2022 走看看