• EF code frist 使用Linq或者Sql执行


    1.使用Linq查询

    1. using (var db = new BloggingContext())  
    2.             {  
    3.                 #region 使用linq查询  
    4.                 Console.Write("Enter a name for a new Blog: ");  
    5.                 var name = Console.ReadLine();  
    6.   
    7.                 var blog = new Blog { Name = name };  
    8.                 db.Blogs.Add(blog);  
    9.                 db.SaveChanges();  
    10.                 var query = from b in db.Blogs  
    11.                             orderby b.Name  
    12.                             select b;  
    13.   
    14.                 Console.WriteLine("All blogs in the database:");  
    15.                 foreach (var item in query)  
    16.                 {  
    17.                     Console.WriteLine(item.Name);  
    18.                 }  
    19.   
    20.                 Console.WriteLine("Press any key to exit...");  
    21.                 Console.ReadKey();  
    22.                 #endregion   

    2. 使用sql语句查询

    2.1 执行存储过程

    1. List<Post> Posts = db.Database.SqlQuery<Post>("TestProcedure @personId"new SqlParameter("@personId""1000")).ToList();  
    2. foreach (var item in Posts)  
    3. {  
    4.     Console.WriteLine("{0}  {1}  {2}  {3}", item.BlogId, item.Content, item.PostId, item.Title);  
    5. }  

    2.2 执行普通sql语句 查询

    1. var blogs = db.Database.SqlQuery<Blog>("select * from Blogs where Name = @name"new SqlParameter("name""gjp"));  
    2. foreach (var item in blogs)  
    3. {  
    4.     Console.WriteLine("ID:{0},Name:{1}", item.BlogId, item.Name);  
    5. }  
    6. Console.ReadKey(); 

    2.3 使用sql语言更新,删除 ,增加操作可以使用ExecuteSqlCommand方法

    1. var items = db.Blogs.ToList();  
    2.                int id;  
    3.                foreach (var item in items)  
    4.                {  
    5.                    id = item.BlogId;  
    6.                    break;  
    7.                }  
    8.                Console.WriteLine("执行sql,更改");  
    9.                int count = db.Database.ExecuteSqlCommand("update Blogs set Name = @content where BlogId = @postid"new SqlParameter[] { new SqlParameter("@content""shjgshgujsjgjkagj"), new SqlParameter("@postid", 1) });  
    10.                if (count == 1)  
    11.                {  
    12.                    db.SaveChanges();  
    13.                    Console.WriteLine("Sql执行成功");  
    14.                    foreach (var item in db.Blogs)  
    15.                    {  
    16.                        Console.WriteLine("ID:{0},Name:{1}", item.BlogId, item.Name);  
    17.                    }  
    18.                }  
    19.                Console.WriteLine("是否继续?yes/no。将值改回来");  
    20.                if (Console.ReadLine() == "yes")  
    21.                {  
    22.                    int count1 = db.Database.ExecuteSqlCommand("update Blogs set Name = @content where BlogId = @postid"new SqlParameter[] { new SqlParameter("@content""gjp"), new SqlParameter("@postid", 1) });  
    23.                    if (count1 == 1)  
    24.                    {  
    25.                        db.SaveChanges();  
    26.                        Console.WriteLine("sql执行成功");  
    27.                        foreach (var item in db.Blogs)  
    28.                        {  
    29.                            Console.WriteLine("ID:{0},Name:{1}", item.BlogId, item.Name);  
    30.                        }  
    31.                    }  
    32.                    Console.WriteLine("按任意键继续");  
    33.                    Console.ReadKey();  
    34.                }  

    3 code first 控制数据库 

    1)会在没有数据库时创建一个,这是默认行为

    1. Database.SetInitializer( new CreateDatabaseIfNotExists<BreakAwayContext>());  

    2)模型改变时,自动重新创建一个新的数据库

    1. Database.SetInitializer( new DropCreateDatabaseIfModelChanges<BreakAwayContext>());  

    3)每次运行时都重新生成数据库

    1. Database.SetInitializer(new DropCreateDatabaseAlways<BreakAwayContext>());  

     3.code first创建

    1)首先打开“程序保管理器控制台”

    2)输入"Enable-Migrations",用于启用项目“code frist”迁移

    3)然后创建Model,Context等

    public class Blog
    {
    public int BlogId { get; set; }
    public string Name { get; set; }

    public virtual List<Post> Posts { get; set; }
    }
    public class Post
    {
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogId { get; set; }
    public virtual Blog Blog { get; set; }
    }
    public class BloggingContext:DbContext
    {
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
    }

    4)此时执行“控制台程序”就行了,ef已帮你自动创建好数据库了

    4 把Code First应用于已经存在的数据库

    1)创建“Ado.net实体数据模型”

    2.选择来自“数据库的code frist”

    3)设置“连接属性”

    4)然后就生成好了,大功告成

  • 相关阅读:
    EMQTT测试--安装与测试 (windows)
    phpStudy本地搭建wordpress教程
    windows下9款一键快速搭建PHP本地运行环境的好工具(含php7.0环境)
    mysql允许外网访问 和修改mysql 账号密码
    mysql sql常用语句
    Mysql(MyISAM和InnoDB)及Btree和索引优化
    Python 有关网址
    Python 字典(Dictionary)操作详解
    pandas读取xlsx
    Python 学习笔记 (变量与数据类型)
  • 原文地址:https://www.cnblogs.com/tianwen9579/p/10062487.html
Copyright © 2020-2023  润新知