1、 项目中用Nuget安装EF,安装MySql驱动所需的.dll
2、 建立连接,引用中导入四个.dll文件,使用时using
3、 建立表类,并将每张表类加入数据库(使用DbSet)
Public partical calss DataBaseConnectContext:DBContext{
Public DbSet<tbl_person_info>persons{get; set;} // tbl_person_info为类
…}
4、 配置App.Config连接字符串
<connectionStrings>
<add name="DataBaseConnectContext" connectionString="server=localhost;user id=root;password=root;persistsecurityinfo=True;database=TestConnectDB" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
//是否保存安全信息(“ADO在数据库连接成功后是否保存密码信息”)
5、 打开程序包管理器控制台 (工具-NuGet) 输入命令产生Migaration两个类
也可以自己复制导入,在configuration类的构造函数中加入
AutomaticMigrationsEnabled = true;// 自动启动数据迁移
AutomaticMigrationDataLossAllowed = true;// 是否可以接受自动迁移期间的数据丢失的
值
SetSqlGenerator("MySql.Data.MySqlClient", new MySqlMigrationSqlGenerator());
6、 给步骤3类开头添加
//增加DbConfigurationType特性,告诉EF使用MySql
[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
7、 对DataBaseConnectContext:DBContext创建实例对象,例connectContext
可使用connectContext.persons.Remove();
.AddOrUpdate();
.saveChanges();
-
主键
用于约束表中的一行,作为这一行的标识符,在一张表中通过主键就能准确定位到一行,因此主键十分重要。主键要求这一行的数据不能有重复且不能为空。[Key] //主键
[DatabaseGenerated(DatabaseGeneratedOption.None)] //对于int类型的主键默认是自增的,取消自增 -
外键
例在一个表类内public partial class tbl_operaterecord_info
{
[Key]
public int item_id { get; set; }
public string account { get; set; }[ForeignKey("account")] //添加外键 public tbl_user_info info { get; set; } }
//则account的取值必须在tbl_user_info的主键值范围之内
一个表可以有多个外键,每个外键必须REFERENCES(参考)另一个表的主键,被外键约束的列,取值必须在它参考的列中有对应值。
-
组合主键
[Key]
[Column(“monitor_id”,Order = 0)][Key]
[Column(“rscid”,Order = 1)]
连接数据库
public int InitializeDatabase()
{
try
{
ConnectionStringSettings configInfo = ConfigurationManager.ConnectionStrings["BirdDBContext"];
string sServerString = configInfo.ConnectionString;
var migrate = new MigrateDatabaseToLatestVersion<BirdDBContext, MyConfiguration>();
Database.SetInitializer(migrate);
//这样会去APP.Config找配置连接符(提前写好),根据name寻找
//sServerString为数据库连接字符串,每次要操作数据库时,都要带上该字符串
using (BirdDBContext dbContext = new BirdDBContext(sServerString))
{
APP.Config中
<connectionStrings>
<add name="BirdDBContext" connectionString="server=localhost;port=3306;user id=root;password=root;persistsecurityinfo=True;database=birddb;"
providerName="MySql.Data.MySqlClient" />
</connectionStrings>
//这样就能拿到数据库的基本信息,从而连接数据库