首先得你的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();
        }

基于注解的EF的更多相关文章

  1. Java基于注解和反射导入导出Excel

    代码地址如下:http://www.demodashi.com/demo/11995.html 1. 构建项目 使用Spring Boot快速构建一个Web工程,并导入与操作Excel相关的POI包以 ...

  2. 基于注解的bean配置

    基于注解的bean配置,主要是进行applicationContext.xml配置.DAO层类注解.Service层类注解. 1.在applicationContext.xml文件中配置信息如下 &l ...

  3. Spring7:基于注解的Spring MVC(下篇)

    Model 上一篇文章<Spring6:基于注解的Spring MVC(上篇)>,讲了Spring MVC环境搭建.@RequestMapping以及参数绑定,这是Spring MVC中最 ...

  4. Spring6:基于注解的Spring MVC(上篇)

    什么是Spring MVC Spring MVC框架是一个MVC框架,通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.从这样一个角度来说,Spring MVC ...

  5. 基于注解的Spring AOP入门、增强Advice实例

    这篇文章简单通过一个例子,介绍几种增强的基本配置,以方便spring框架初学者对aop的代码结构有个清楚的了解认识.首先,spring支持aop编程,支持aspectJ的语法格式来表示切入点,切面,增 ...

  6. Struts2基于注解的Action配置

    使用注解来配置Action的最大好处就是可以实现零配置,但是事务都是有利有弊的,使用方便,维护起来就没那么方便了. 要使用注解方式,我们必须添加一个额外包:struts2-convention-plu ...

  7. Mybatis框架基于注解的方式,实对数据现增删改查

    编写Mybatis代码,与spring不一样,不需要导入插件,只需导入架包即可: 在lib下 导入mybatis架包:mybatis-3.1.1.jarmysql驱动架包:mysql-connecto ...

  8. 基于注解的Spring AOP的配置和使用

    摘要: 基于注解的Spring AOP的配置和使用 AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不 ...

  9. 基于注解的Spring AOP示例

    基于注解的Spring AOP示例 目录 在XML配置文件中开启 @AspectJ 支持 声明切面及切入点 声明通知 测试 结语 在XML配置文件中开启 @AspectJ 支持 要使用Spring的A ...

随机推荐

  1. 将Controller中的数据传递到View中显示

    如何将Controller 中的数据传送到View 步骤: (1)要有数据,如果要用到对象可以在Model 中定义对应的类 (2)要有装数据的容器: System.Text.StringBuilder ...

  2. 网易云课堂_程序设计入门-C语言_第五周:函数_1分解质因数

    1 分解质因数(5分) 题目内容: 每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数.比如,6可以被分解为2x3,而24可以被分解为2x2x2x3. ...

  3. ios 常用宏(copy)

    分享一下我现在用的 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 3 ...

  4. Advanced Fruits(好题,LCS的模拟)

    Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  5. Java入门基础总结(二)

    判断语句 if else  如下: 1 /*    2                    语法: 3              if(条件) 4              { 5          ...

  6. 最简单的视音频播放演示样例4:Direct3D播放RGB(通过Texture)

    ===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...

  7. JavaScript 的DOM操作

    HTML DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. Windows 对象操作 ...

  8. 根据老赵轻量级Actor进行修改的Actor模型

    学习了老赵轻量级Actor模型,并在实际中使用,效果不错. 老赵轻量级Actor模型: ActorLite:一个轻量级Actor模型实现(上) ActorLite:一个轻量级Actor模型实现(中) ...

  9. C语言学习——C程序的运行机理

    预处理: #include<xxx> 尖括号表示库文件:#include"xxx" 双引号表示自己写的文件. #include后面的文件格式允许多种,但若要是" ...

  10. javascript 验证身份证

    /*身份证号码检索*/ function cardCheck(cartNo) { if (cartNo.val() === "") { return false; } else i ...