简单实现利用EntityFramework实现Code First

本人很菜,不知道写的对不对,神人勿喷。

按照操作:

第一步:

  创建项目=》在项目上右键=》选择“管理NuGet”程序包=》选择“浏览”并输入EntityFramework=》安装。

  这样EntityFramework就在项目中了。

  系统会自动添引入两个EntityFramework,EntityFramework.SqlServer。

第二步:      

      1、数据库操作:

    创建数据库(sqlserver 其他数据库把驱动引用好并且web.config配置好就可以了)=》创建表=》填写各种字段(表中必须要有主键)

    譬如:

      表名:BusinessInformation_List

      表名:BusinessInformation_imgurl

      2、数据库类:

    个人习惯,是将数据库访问写在一个类库中。

    web.config 联库字符串

    <connectionStrings>
      <add name="SqlServerHelper" connectionString="Data Source = IP地址;Initial Catalog = 数据库名;User Id = 用户名;Password = 密码;" providerName="System.Data.SqlClient" />
    </connectionStrings>

    我们先创建这两个模:

    [Table("BusinessInformation_List")]    //Table指定的是数据库中的表名一般都是与数据库表名一致
    public class BusinessInformation_List
    {
      public string id { get; set; }
      /// <summary>
      /// 标题
      /// </summary>
      public string title { get; set; }
      /// <summary>
      /// 内容
      /// </summary>
      public string content { get; set; }
      /// <summary>
      /// 创建时间
      /// </summary>
      public DateTime createtime { get; set; }
      /// <summary>
      /// 修改时间
      /// </summary>
      public DateTime? updatetime { get; set; }
      /// <summary>
      /// 图片组(子表)查询出主表后可以直接调用出来子表集合哦~很方便很喜欢。
      /// </summary>
      public virtual ISet<BusinessInformation_imgurl> BusinessInformation_imgurls { get; set; }
    }

    

    [Table("BusinessInformation_imgurl")]
    /// <summary>
    /// 商讯图片组
    /// </summary>
    public class BusinessInformation_imgurl
    {
      public string id { get; set; }
      /// <summary>
      /// 图片路径(调用 ImgCache_Add 方法保存)
      /// </summary>
      public string imgurl { get; set; }
      /// <summary>
      /// 图片描述
      /// </summary>
      public string note { get; set; }
      /// <summary>
      /// 商讯id
      /// </summary>
      public string biid { get; set; }
      [ForeignKey("biid")]//主表id 可以在子表直接调出关联的主表信息
      public BusinessInformation_List BusinessInformation_List { get; set; }
      /// <summary>
      /// 是否为封面
      /// </summary>
      public bool istop { get; set; }
    }

        然后创建个链接数据库类: 

    public class BIContext : System.Data.Entity.DbContext

    {

       public BIContext() : base("name=SqlServerHelper") //SqlServerHelper 是web.config中联库字符串

      { }

      public DbSet<Entity.BusinessInformation_List> BusinessInformation_List { get; set; }

      public DbSet<Entity.BusinessInformation_imgurl> BusinessInformation_imgurl { get; set; }

    }

到这里基本就OK啦。

是这样使用地

public BIContext db = new BIContext();

using (var dbTransaction = db.Database.BeginTransaction())  //创建 也可以不创建事务,操作。
{
  try
  {

    //model_ImgGroup.imgModels 是我自己定义的数组

    //商讯信息
    var model_BusinessInformation_List = new DataBaseCenter.DB.Entity.BusinessInformation_List()
    {
      id = EntityId.createNew(),
      title = model_ImgGroup.title,
      content = model_ImgGroup.content,
      createtime = DateTime.Now,
      bid = model_BusinessInformation.id
    };
    db.BusinessInformation_List.Add(model_BusinessInformation_List);

    

    //保存图片
    foreach (var img in model_ImgGroup.imgModels)
    {
      var model = new DataBaseCenter.DB.Entity.BusinessInformation_imgurl()
      {
        id = EntityId.createNew(),
        biid = model_BusinessInformation_List.id,
        imgurl = _ImgCache_Add(img.imgurl),
        istop = img.istop,
        note = img.note
      };
      db.BusinessInformation_imgurl.Add(model);
    }

    db.SaveChanges();  //数据保存
    dbTransaction.Commit();  //提交事务

  }

  catch (Exception ex)
  {
    dbTransaction.Rollback();  //事务回滚
    return ResultData.Fail(ex.Message);
  }

}

OK。这样插入代码就写啦。

如果要查询就方便啦。

var model = db.BusinessInformation_List.OrderBy(d => d.createtime).FirstOrDefault();

//如果要查图片

model.BusinessInformation_imgurl

这样就出来啦。就是这么简单。我用的很过瘾所以分享给大家哈哈。

posted @   鞍山老菜鸟  阅读(93)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示