当前位置: 首页 > news >正文

怎么寻找做有益做网站的客户建网站买什么主机

怎么寻找做有益做网站的客户,建网站买什么主机,建站超市,合肥关键词优化平台EFCore官方文档置顶,看这个就行。下面的内容只是总结,算是备忘录。 一、创建和删除 //1、创建数据库和表 db.Database.EnsureCreated();//将创建数据库(如果不存在)并初始化数据库架构。 如果存在任何表 (包括另一 DbContext 类)…

EFCore官方文档置顶,看这个就行。下面的内容只是总结,算是备忘录。
一、创建和删除

//1、创建数据库和表
db.Database.EnsureCreated();//将创建数据库(如果不存在)并初始化数据库架构。 如果存在任何表 (包括另一 DbContext 类) 的表,则不会初始化架构。//仅在书中没有表时有效
//2、删除数据库
db.Database.EnsureDeleted//方法将删除数据库(如果存在)。 如果没有适当的权限,则会引发异常。
//3、迁移数据库
context.Database.Migrate();
//4、初始化数据库和表。可以用来创建不存在的表(已存在表,则会报错)
//EnsureCreated 仅在数据库中没有表时有效。 如果需要,可以编写自己的检查来查看架构是否需要初始化,并使用基础 IRelationalDatabaseCreator 服务初始化架构。
var databaseCreator = dbContext.GetService<IRelationalDatabaseCreator>();
databaseCreator.CreateTables();

二、表模型

[Table("Books")]//命名表名
public class Book
{[Key]//主键。Id或<type name>Id将被配置为实体主键。其他属性名则需要配置[Key][Column("book_Id")]//表的类名public long Id { get; set; }[Column(TypeName ="varchar(200)",Order =1/*列顺序*/)][Comment("The URL of the blog")]//列注释public string? Title { get; set; }[Column(TypeName = "datetime2(7)")][Precision(7)]//与"datetime2(7)"等价public DateTime? PubTime { get; set; }[Column(TypeName = "decimal(5,2)")]//精度5,小数位2[Precision(5, 2)]//与"decimal(5,2)"等价public double? Price { get; set; }[MaxLength(500)]//与varchar(500)等价public string? Author { get; set; }
}

三、DbContext

public class TestDbContext : DbContext
{//表格实体public DbSet<Book> Books { get; set; }public string DbPath { get; }public TestDbContext(){string desktop=System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop);DbPath = Path.Join(desktop, "TestDB.db");}//连接数据库字符串protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder){optionsBuilder.UseSqlite($"Data Source={DbPath}");}protected override void OnModelCreating(ModelBuilder modelBuilder){base.OnModelCreating(modelBuilder);modelBuilder.Entity<Book>().Property(x => x.Price).HasDefaultValue(1.00);//列设置默认属性modelBuilder.Entity<Book>().Property(x => x.PubTime).HasDefaultValue(DateTime.Now);//列设置默认属性}
}

四、查询。Linq表达式

//1、加载所有数据
var books = context.Books.ToList();
//2、加载单个对象
var book = context.Books.Single(b => b.Id== 1);
//3、筛选
var books = context.Books.Where(b => b.Url.Contains("dotnet")).ToList();
//4、跟踪查询。查询到的对象可以用来修改数据库中的值var first=db.list.First();
first.Name="已修改";
context.SaveChanges();
//5、非跟踪查询。查询到的对象无法修改数据库中的值
var first=db.list.AsNoTracking().First();
first.Name="已修改";
db.SaveChanges();
//6、非跟踪查询2。与上面等效,多次操作时,可以少用几个AsNoTracking()方法
db.ChangeTracker.QueryTrackingBehavior=QueryTrackingBehavior.NoTracking;
var first=db.list.First();
first.Name="已修改";
db.SaveChanges();
//7、非跟踪查询3。在连接字符串后面增加限定
protected override void OnConfiguring(DbContextOptionsBuilder options)=> options.UseSqlite($"Data Source={DbPath}").UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
//8、分组和统计
//得到的group是List<匿名类>。匿名类的属性就2个ClassId 和StudentCount 
var group = db.Students//使用GroupBy分组,依据ClassId.GroupBy(s => s.ClassId).Select(g => new{//拿到ClassId,由于ClassId是分组的,因此使用Max或Min是一样的ClassId = g.Max(s => s.ClassId),//使用Count函数拿到总数StudentCount = g.Count()});

五、删除

//1、批量删除
db.list.Where(x=>x.Id>30).ExecuteDelete();
//2、单个删除
var stu=db.list.FirstOrDefault();
db.list.Remove(stu);
int deleteCount=db.SaveChanges();

六、添加

//1、单个添加
db.Add(new Student(){ClassId=2,Name="赵子龙"});
db.SaveChanges();
//2、多个添加
db.AddRange(new List<Student>(){new Student(){ClassId=2,Name="张翼德"}),new Student(){ClassId=2,Name="关云长"}),});
db.SaveChanges();

七、修改

//1、单个修改
var stu = db.list.FirstOrDefault(x => x.Name.Equals("赵子龙"));
stu.Name= "赵云";
db.Entry(stu).State = EntityState.Modified;
int editCount = db.SaveChanges();
//2、批量修改1
var stus = db.list.Where(x => x.ClassId==2);
foreach (var stu in stus)
{stu.Name= "赵云";db.Entry(stu).State = EntityState.Modified;
}
int editCount = db.SaveChanges();
//3、批量修改2。与上面方法效果一致
db.list.Where(x => x.ClassId==2).ExecuteUpdate(s=>s.SetProperty(b=>b.Name,"赵云"));

八、操作

//SaveChange()可以同时处理多个操作。不明确、不批量、不知道时使用该方法
//ExecuteDelete()方法会立即执行。明确、批量、知道时使用该方法
//ExecuteUpdate ()方法会立即执行。明确、批量、知道时使用该方法

九、事务

//事务允许以院子方式处理多个数据库操作。如果已提交事务,则所有操作都会成功应用到数据库。如果已回滚事务,则所有操作都不会应用到数据库。
using var transaction = db.Database.BeginTransaction();
try
{//批量添加1db.AddRange(new List<Post>(){new Post(){ PostId=3,Title="cc" },new Post(){ PostId=3,Title="dd" },});db.SaveChanges();//批量添加2db.AddRange(new List<Post>(){new Post(){ PostId=3,Title="ee" },new Post(){ PostId=3,Title="ff" },});db.SaveChanges();//提交事务transaction.Commit();
}
catch (Exception ex)//提交事务会出现异常
{//回滚事务transaction.Rollback();Console.WriteLine(ex.Message);
}
http://www.yayakq.cn/news/975986/

相关文章:

  • 注册网站做网销外贸网站推广平台哪个好
  • 收录快的网站小程序导航wordpress
  • erp快速开发平台东莞公司seo优化
  • opkg 做网站的包叫什么名字企业建设好一个网站后 如何进行网站推广
  • 钦州建设局网站高清设计网站推荐
  • 宜昌便宜做网站国家企业信息公示信息官网
  • 简述网站设计要遵循哪些原则河北高端网站建设
  • 企业如何创建网站wordpress plugins
  • 网站建设维护要求用ps做简单的网页设计
  • 筑成建设集团网站seo整站优化 wordpress
  • 咸阳兼职做网站东莞市建设工程信息服务协会
  • 长沙做网站推广深圳华宫建设集团网站
  • 查看网站点击量泰安做网站多少钱
  • firework做网站教程用手机制作招生简章的app
  • 旅游型网站建设济南网站建设推广服务
  • 深圳做公司网站推广的网站备案填写要求
  • 成都如何寻找做网站的wordpress模板怎么安装教程视频
  • 做快递网站制作网址导航网站建站
  • 电子商务网站的规划与分析工程信息价在哪查询
  • 温州网上推广什么网站好网站建设项目中标通知
  • 网站建设一般多少钱要如何选择江苏网站制作
  • 网站备案填写网站名称厦门海绵城市建设官方网站
  • 网站开发人员需求小程序定制 seo营销
  • 网站建设费是广告费吗免费影视网站建设
  • 用模板做网站响应式网站高度如何计算
  • 美食优秀设计网站鹤岗做网站
  • 大连企业网站制作公司简介范文100字左右
  • 阿里云建站文章搜索黄山风景区门票价格
  • 宁波专业外贸网站建设营销型网站结构图
  • 江门网站建设咨询徐州官方发布