时间:2021-07-01 10:21:17 帮助过:30人阅读
如此修改后,我们就看到了在“引用”中多出了两个家伙:
如果其它的数据库,比如 MySQL、Sqlite,其实,你就把“Microsoft.EntityFrameworkCore.SqlServer”里改成相应的Nuget,比如:“Microsoft.EntityFrameworkCore.Sqlite”、“MySQL.Data.Entities”。
2、我们要用于 First Code 实现的类。怎么做呢?方式是建立一个类来实现。我们先新建立一个文件夹叫“Model”,这样才有 MVC 的样子(><)!之后在里面建立一个类(class),名字叫“myDataBase”——我的数据库!
看准下图,别建错了!毕竟,.net Core 只识 .net Core,对 .net Framework 基本无视。
结果应该如下:
3、改 myDataBase.cs 中的代码
我们先看一下,myDataBase.cs 中的原始样子是什么样子,这样大家统一一下,不然姿势错了,直接再顺下去,八成要出奇葩了。
好的,我们下面对其修改了。
首先,我们在 一大堆 using 中加入“using Microsoft.EntityFrameworkCore;”这样,就有了正确的命名空间来对下面的代码进行支持了。
之后,在 public class myDataBase 后面加上“ : DbContext”。
再然后在方法里建立两个方法——其实说白了相当于数据库中的“表”。
public DbSet<MyUser> Users { get; set; }
public DbSet<MyNews> News { get; set; }
其中,Users 与 News 必须与数据库表明一致,而MyUser 与 MyNews 就是类构成——其结构,自己看心情起。^^
有了两个表后,我们要想一想了。不对呀,我们不连数据库,有两个表有毛用呀,所以我们要连接一下数据库(说实话,我感觉我有点本末倒置)。代码是:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Server=SQLOLEDB;Data Source=(local);uid=sa;pwd=za;DataBase=myDataBase");
}
其中我们看到在 optionsBuilder 对象中有一个 UseSqlServer方法,说明这是连接 SQL Server 的,如果在 project.json 中选择其它数据库相应的类库,那么这里的 UseSqlServer 也会变成其它的数据库连接方法,比如 Sqlite 就是 UseSqlite。
后面的 @”Server=SQLOLEDB;Data Source=(local);uid=sa;pwd=za;DataBase=myDataBase” 是针对数据库的连接字符串,根据自己的需要进行修改
下面,我们看看 myDataBase.cs 文件里面就是下面这个样子:
我们发现在这个文件中,IDE 提出了两个错误点,可能大家用别的编辑器时不会发现——“MyUser”与“MyNews”。
上面说了,这两货是数据库中表结构的类,所以我们最好先在数据库中建立相应的表。别忘记数据库名是:myData——见连接字符串。
我用得是 SQL Server 2012 具体情况如下:
Users表(主键:id,自增):
News表(主键:news_id,自增):
好了,有表了之后,我们就要实现这两个表了。怎么实现呢,当然要对这两个家伙建立相应的类啦。
依习惯,我个人的习惯呀,你们随意了。就是在Model 中建个 dbo 来存放相应表对应的类。之后,我们在 dbo 文件夹里建立相应的两个类文件:MyUser.cs、MyNews.cs
好,我们来具体实现,先整 MyUser.cs,代码如下:
using System;
using System.ComponentModel.DataAnnotations;
namespace testProject.Model.dbo
{
public class MyUser
{
[Key]
public int id { get; set; }
public string name { get; set; }
public DateTime? createtime { get; set; }
}
}
我们从中可以看出,方法 id、name、createtime 是对应着数据库表 Users 里面的每个字段,连类型也是一一对应。
[Key] 标签标注着 id 是关键字。而如果要在类中调用 [Key] 就必须要引入命令空间:System.ComponentModel.DataAnnotations。
这样第一个表的类就实现了,第二个 MyNews.cs 如同上,我们照“类画类”。
using System;
using System.ComponentModel.DataAnnotations;
namespace testProject.Model.dbo
{
public class MyNews
{
[Key]
public int news_id { get; set; }
public string news_name { get; set; }
public string news_content { get; set; }
public DateTime? news_createtime { get; set; }
}
}
两个类实现完了后,我们就要向数据库类 myDataBase.cs 中引入这两个家伙。因为都在 dbo 文件夹中,所以我们只要在 myDataBase.cs 加入命名空间:testProject.Model.dbo 即可。
这样,数据库连接就成了。其实的只要调用这个 Model 就成了,和平常的 MVC 一样。
什么???有人不会操作。。。天那。。。好吧,我先简单介绍一下吧!T_T
我们先在 Controller 文件夹中的 HomeController.cs 建立一个方法,就叫 writeUser。
public string writeUser()
{
Model.myDataBase db = new Model.myDataBase();
Model.dbo.MyUser user = new Model.dbo.MyUser
{
name = "MysteriousMan",
createtime = DateTime.Now
};
db.Users.Add(user);
db.SaveChanges();
return "ok";
}
运行结果 Web 页:
运行结果 数据库:
这样,.net Core 数据库的基本操作就这样子鸟~~~
.net Core 自我学习随笔(三)——我们整个数据库如何?
标签:技术分享 iss com 分享 ace component int 个数 over