C#中使用Entity Framwork

1、 项目中用Nuget安装EF,安装MySql驱动所需的.dll
2、 建立连接,引用中导入四个.dll文件,使用时using
3、 建立表类,并将每张表类加入数据库(使用DbSet)

Public partical calss DataBaseConnectContext:DBContext{
		Public DbSetpersons{get; set;} // tbl_person_info为类
		…}

4、 配置App.Config连接字符串


    
  

//是否保存安全信息(“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();
            Database.SetInitializer(migrate);

//这样会去APP.Config找配置连接符(提前写好),根据name寻找

//sServerString为数据库连接字符串,每次要操作数据库时,都要带上该字符串

using (BirdDBContext dbContext = new BirdDBContext(sServerString))
                {

APP.Config中


    
  

//这样就能拿到数据库的基本信息,从而连接数据库

你可能感兴趣的:(C#)