星空网 > 软件开发 > ASP.net

EF CodeFirst 初识

随着EntityFramework的发展,原先的三种方式,{Code First ,Model First,Database First }  CodeFirst基本摆脱了另外两种方式

成为了 最受欢迎的一种编程模型。 我们通过先编写代码,然后自动生成数据库。 程序员只需专心的面向对象写代码,而无需再写烦人的各种Sql语句。

新建控制台项目,通过Nuget引入EF库
增加两个类 
   public class Blog  {    public string ID { get; set; }    public string BlogName { get; set; }    public string BlogAuthor { get; set; }    public virtual List < Post> Posts { get ; set ; }   //导航属性  }  public class Post  {    public string ID { get; set; }    public string PostName { get; set; }    public string Content { get; set; }        public virtual Blog BelongBlog { get; set; }   //导航属性  }

这两个类属于一对多的关系,一个博客可以有多个博文。
EF的核心在于DBContext类,可以说就是这个类负责着实体和数据库之间的交互
所以增加一个context类
public class BlogContext : DbContext  {    private readonly static string CONNECTIONSTRING = "Data Source=.;Initial Catalog=EFBlog;User    ID=sa;Password=11111;Integrated Security=True;Pooling=False";    public BlogContext():base (CONNECTIONSTRING)    {    }    public DbSet < Blog> Blogs { get ; set ; }    public DbSet < Post> Posts { get ; set ; }  }

注意需要连接字符串, 然后提供Dbset集合,以后的程序中,就可以通过这些集合获取数据了。
在main中如下
    public static void Main( string [] args)    {      BlogContext ctx = new BlogContext ();      ctx.Blogs.Add( new Blog { ID = "1", BlogName = "Jason's Blog" , BlogAuthor = "Jason",        Posts = new List < Post> {          new Post {ID="1" ,PostName= "shenwei",Content= "今天的阳光真好,要晒被子!" },          new Post {ID="2" ,PostName= "shenwei",Content= "今天下雨了,都不能出去玩!" }        } });      ctx.Blogs.Add( new Blog { ID="2" ,BlogName="Code Home",BlogAuthor= "zhangxiaomao"});      ctx.SaveChanges();      Console .ReadKey();

运行之后 数据库如下

EF CodeFirst 初识
 主键      可以发现 主键每个类都各自对应一张表,而主键也自动有了,原因是 在EF默认规则下 EF会 自动把ID或者 类名+ID的字段设置为主键,如果不存在这样的字段则会报错
不过 我们当然也可以通过在DataAnnotations在字段上 标记[ key ] 特性,来指明 主键。
 外键      当codefirst发现我们的类之间存在一对多的关系时,会自动化在相应的表里生成外键,这样一来,类之间的关系就很清楚了。
 
select * from posts
 
EF CodeFirst 初识
 
select * from blogs
 
EF CodeFirst 初识
 
好了,暂时就到这里。(求推荐!)




 









原标题:EF CodeFirst 初识

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

新手卖家还在为跨境物流一头雾水?别担心!这篇文章帮你揭开跨境物流的神秘面纱:https://www.goluckyvip.com/news/7508.html
泡货国际物流怎么发:https://www.goluckyvip.com/news/7509.html
国通快递全网停工_国通快递破产:https://www.goluckyvip.com/news/751.html
lazada跨境店和本土店哪个更好做? :https://www.goluckyvip.com/news/7510.html
TikTok如何检测账号是否正常,判定的因素是什么? :https://www.goluckyvip.com/news/7511.html
在越南断层领先!Shopee或将迎来首个盈利年:https://www.goluckyvip.com/news/75115.html
武陵山大裂谷周围景点 武陵山大裂谷周围景点图片:https://www.vstour.cn/a/411233.html
南美旅游报价(探索南美洲的旅行费用):https://www.vstour.cn/a/411234.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流