• 基于注解的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();
            }
  • 相关阅读:
    洛谷 P1525 关押罪犯(并查集|二分图判定&二分答案)
    洛谷 P1948 [USACO08JAN]Telephone Lines S(贪心+最短路)
    洛谷 P1315 观光公交(贪心+模拟)
    洛谷 P3258 [JLOI2014]松鼠的新家(树上差分)
    【NOIP2001】统计单词个数
    【洛谷习题】皇后游戏
    【洛谷习题】木棍加工
    【SDOI2008】仪仗队
    【洛谷习题】末日的传说
    【洛谷习题】又是毕业季I
  • 原文地址:https://www.cnblogs.com/MyKingDragon/p/4196471.html
Copyright © 2020-2023  润新知