学习ASP.NET Core Razor 编程系列十一——把新字段更新到数据库

学习ASP.NET Core Razor 编程系列目录

学习ASP.NET Core Razor 编程系列一

学习ASP.NET Core Razor 编程系列二——添加一个实体

 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面

学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面

学习ASP.NET Core Razor 编程系列六——数据库初始化

学习ASP.NET Core Razor 编程系列七——修改列表页面

学习ASP.NET Core Razor 编程系列八——并发处理

学习ASP.NET Core Razor 编程系列九——增加查询功能

 学习ASP.NET Core Razor 编程系列十——添加新字段

 

 

         在经过了上面篇文章的学习之后,本篇文章我们来学习如何使用 Entity Framework Code First 迁移功能将新字段添加到模型,并且同时将新字段添加到数据库中。

            使用 EF Code First 自动创建数据库时,Code First 会向数据库添加一个表,以帮助跟踪数据库的架构是否与生成它的实体类同步。 如果它们不同步,EF 就会引发异常。 这样一来就更容易发现一致的数据库表或者代码问题。

          我们接下来使用Code First迁移功能更新数据库。

         1. 现在我们来修改seeddata类,在类中增加一个Publishing字段,并提供数据。修改示例如下所示,你可以对每一本书籍信息都参照修改。

 
  context.Book.AddRange(
                    new Book
                    {
                        Name = "Python编程 从入门到实践",
                        ReleaseDate = DateTime.Parse("2018-1-12"),
                        Author = "埃里克·马瑟斯",
                        Price = 75.99M,
                        Publishing="机械出版社"
                    },

          2. 在Visual Studio 2017菜单中选择生成->生成解决方案

         3.在Visual Studio 2017的菜单中选择“工具”菜单–>“NuGet 包管理器”>“包管理器控制台”。 如下图。

       

         4. 在 PMC 中,输入以下命令,如图:

          Add-Migration Publishing

 

      Add-Migration 指令会通知框架执行以下操作:

    1)  将 Book实体类与 数据库中的Book表进行比较。

    2)  创建代码以将在数据库中对表Books表结构进行更新。如下图。

    3)  Visual Studio 2017对于有新字段“Publishing”的迁移文件的命名是当前日期+字段名称。这样命名这样有助于管理。如下图。

 

         5. 在执行完上面的指令之后,在 PMC 中,输入以下命令,如图:

            Update-Database

 

          7. 在执行完以上指令之后,在数据库中添加了Publishing字段。如下图。

 

        8. 虽然我们把字段添加 到数据库,但是这个字段,却是没有数据的。如下图。

 

 

那如何给字段同值呢?

  1. 如果你是开发,而且已经修改了初始化类SeedData类。那么可以参考(学习ASP.NET Core Razor 编程系列六——数据库初始化)给数据库初始化数据。
  2. 如果你把所有的记录从数据库中删除。你可以在浏览器中打开书籍列表页面,然后使用删除链接删除记录,也可以使用SQL Server对象资源管理器(SQL Server Management Studio)使用SQL语句把数据从数据库中删除。

 

          现在我们在visual studio 2017中按F5运行应用程序,应用程序不会在如上一篇文章那样报错了。在应用程序运行起来之后,在浏览器中分别打开创建/编辑/列表页面,验证这些页面中是否已经有了publishing 字段的书籍信息。如下图。

列表页面:

 

创建页面:

 

编辑页面:

 

 

 

 

 

在Linux下安装RabbitMQ

Installing on RPM-based Linux (CentOS, Fedora, OpenSuse, RedHat)

安装新版本的RabbitMQ出错:

centos端口转发神器:socat安装及使用

socat作用是在两个流之间建立双向的通道,且支持众多协议和链接方式:ip,tcp,udp,ipv6,pipe,exec,system,open,proxy,openssl,socket等
yum 方式安装:

wget –no-cache http://www.convirture.com/repos/definitions/rhel/6.x/convirt.repo -O /etc/yum.repos.d/convirt.repo
yum makecache
yum install socat -y

cat /etc/yum.repos.d/convirt.repo

[convirt-dep]
name=ConVirt Dependencies
baseurl=http://www.convirture.com/repos/deps/RHEL/6.x
enabled=1
gpgcheck=0
gpgkey=http://www.convirture.com/repos/convirture_packaging_pub_key

使用方式:

sudo nohup socat tcp-l:外部访问端口,reuseaddr,fork tcp:192.168.xxx.xxx:内部转发端口

1、安装Erlang:http://www.rabbitmq.com/releases/erlang/

yum -y install openssl* 
rpm -ivh http://www.rabbitmq.com/releases/erlang/erlang-17.4-1.el6.x86_64.rpm (old)
rpm -ivh http://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el6.x86_64.rpm (new)

2、安装RabbitMQ

rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install http://www.rabbitmq.com/releases/rabbitmq-server/v3.5.4/rabbitmq-server-3.5.4-1.noarch.rpm -y (old)
yum install http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.2/rabbitmq-server-3.6.2-1.noarch.rpm -y (new)

3、修改配置

mkdir -p /data/rabbitmq/log/
chown -R rabbitmq:rabbitmq /data/rabbitmq
vim /usr/lib/rabbitmq/bin/rabbitmq-defaults  --修改日志文件和数据库文件存放路经
vim /usr/lib/rabbitmq/bin/rabbitmq-env  修改端口号

4、启动RabbitMQ

chkconfig rabbitmq-server on
/sbin/service rabbitmq-server stop/start
或
service rabbitmq-server start/stop

5、安装监控插件

rabbitmq-plugins enable rabbitmq_management   --安装监控插件

6、设置用户

复制代码
rabbitmqctl add_user user1 ****  --添加用户user1和密码

rabbitmqctl set_permissions -p / user1 ".*" ".*" ".*"  --设置user1用户在虚拟主机/下面的权限

rabbitmqctl list_user_permissions user1   --显示user1权限

rabbitmqctl set_user_tags user1 administrator  --设置user1为管理员标示

rabbitmqctl delete_user guest     --删除默认guest用户

rabbitmqctl list_users   --显示所有用户

rabbitmqctl add_vhost vhost1  --添加虚拟主机vhost1,虚拟主机只是起到一个命名空间的作用,所以可以多个user共同使用一个virtual host
复制代码

7、设置防火墙

复制代码
iptables -I INPUT -p tcp --dport 5672 -j ACCEPT   --rabbitmq端口

iptables -I INPUT -p tcp --dport 15672 -j ACCEPT  --监控端口

service iptables save
service iptables restart 
cat /etc/sysconfig/iptables
复制代码

 

 

Centos 安装GIT 1.7.1

在Linux上安装Git

1、首先,你可以试着输入git,看看系统有没有安装Git:

git

2、安装GIT https://git-scm.com/download/linux

yum install git -y

3、检查GIT是否安装成功

git --version

4、安装完成后,还需要最后一步设置,在命令行输入:

复制代码
git config --global user.name "your name"
git config --global user.email "your email address"
解决办法UTF8 编码的环境,通过将git配置变量 core.quotepath设置为false
git config --global core.quotepath false
git config --global i18n.logOutputEncoding utf-8
git config --global i18n.commitEncoding utf-8
查看已设配置
git config --list
复制代码

5、在服务器上创建本地仓(git init  和 git init –bare 的区别)

复制代码
useradd git  --增加git用户来运行git服务
mkdir /data/git_repo
chown -R git:git /data/git_repo  --修改所有者
su git --切换git用户登录

cd /data/git_repo/
git init --bare tlz.common.git  --在服务器上创建本地仓名为tlz.common.git需要使用--bare参数,在用户本地创建则不需要使用--bare参数(也不一定非要按这样的规定方式创建)
或
cd /data/git_repo/
mkdir tlz.common.git
cd tlz.common.bit
git init                --把这个目录tlz.common.bit变成Git可以管理的仓库
复制代码

查看git_repo仓库的所有者和所有组必须是git:

没有使用–bare参数创建git仓库:

使用–bare参数创建git仓库:

6、在windows下面创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(在本地windows操作系统上右键菜单中选择“Git Bash Here”,打开Git Bash窗口 ),创建SSH Key:

ssh-keygen -t rsa -C "youremail@example.com" ----一路回车就可以创建默认的id_rsa和id_rsa.pub文件
ssh-keygen -t rsa -C wangyunpeng@tidebuy.net -f ~/.ssh/wyp -P ''(这里是空字符串)   ----创建指定用户名称的公钥文件
ls -la

7、如果在linux服务器上没有.ssh目录,也需要通过创建证书的方式创建出来.ssh目录

su git  ----切换到git用户
ssh-keygen -t rsa

8、在服务器上添加登陆用户的证书,记住要在git用户下面的.ssh目录里面创建authorized_keys文件(/home/git/.ssh/下面创建authorized_keys文件)

vim authorized_keys  --编辑文件,将windows里面的ssh目录下面创建的wyp.pub文件的内容粘贴到这里
cat authorized_keys  --查看复制内容
chmod 600 authorized_keys
rm -f id_rs*    --可以删除证书文件

9、回到root用户下面修改/etc/passwd,禁止git用户登录

exit
vim /etc/passwd     --修改git登录方式/usr/bin/git-shell,改为禁用

9、在windows客户端上的ssh目录里面创建config文件,指定git服务器的ip地址、端口、登陆用户名和登陆密钥证书

10、在windows客户端里面,找到要存放远程git仓库的本地目录获取代码有两种方式:

a、使用命令行方式获取代码,右键菜单选择“Git Bash Here”:

git clone git@localgit:/data/git_repo/tlz.common.git

b、使用图形窗口获取代码,右键菜单选择“Git Clone”:

c、结果: