简单实现利用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
这样就出来啦。就是这么简单。我用的很过瘾所以分享给大家哈哈。
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现