EF codefirst
首先建个api,然后添加DAL,MODEL类库,
----------------DAL
DAL添加文件夹随便起个名(EF_Code),添加新建项搜索ado实体数据模型选择空CodeFirst模型,剪切 app.config (
<connectionStrings>
<add name="Model1" connectionString="Data Source=.;Initial Catalog=LGC;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
)
粘贴到web.config <configuration>里面,工具,连接数据库,起一个数据库名.
文件夹另一个类:NewsDal
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAl.EF
{
public class NewsDal<T> where T:class,new()
{
Model1 db = new Model1();
public List<T> Show()
{
return db.Set<T>().ToList();
}
public int Add(T t)
{
db.Set<T>().Add(t);
return db.SaveChanges();
}
public int Delete(T t)
{
db.Set<T>().Remove(t);
return db.SaveChanges();
}
public int Update(T t)
{
db.Set<T>().Attach(t);
db.Entry(t).State = System.Data.Entity.EntityState.Modified;
return db.SaveChanges();
}
}
}
--------------------Bll
using DAl.EF;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
public class NewsBll
{
NewsDal<LInfo> news = new NewsDal<LInfo>();
public List<LInfo> ShowNews()
{
return news.Show();
}
public int AddNewsReader(LInfo mod)
{
return news.Add(mod);
}
public int DelNewsReader(LInfo mod)
{
return news.Delete(mod);
}
public int UpdNewsReader(LInfo mod)
{
return news.Update(mod);
}
}
}
---------------------Model
Model添加表,格式如下:
[Table("LInfo")]
public class LInfo
{
[Key]
public int Id { get; set; }
public string LName { get; set; }
public int LId { get; set; }
}
[Table("UserInfo")]
public class UserInfo
{
[Key]
public int UId { get; set; }
public int UName { get; set; }
public int UNum { get; set; }
public int LId { get; set; }
}
生成库表:
打开工具:NuGet包管理器选择程序包管理控制台,下方写如下,分开,写一条回车一下,默认项目选择DAL:
enable-migrations
add-migration 1
update-database
或者(get-help EntityFrameWork)个人建议
然后就可以检查数据库看看有没有库表
----------------------------控制器 引用entityframework.(sqlserver).dll
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using BLL;
using Model;
namespace WebApplication5.Controllers
{
public class DefaultController : ApiController
{
NewsBll bll = new NewsBll();
public List<LInfo> ShowNews()
{
return bll.ShowNews();
}
public int AddNewsReader(LInfo mod)
{
return bll.AddNewsReader(mod);
}
public int DelNewsReader(LInfo mod)
{
return bll .DelNewsReader(mod);
}
public int UpdNewsReader(LInfo mod)
{
return bll.UpdNewsReader(mod);
}
}
}
//分页
public List<Emperor> GetEmperors(int dId = 0, string key = "", int pageIndex = 1)
{
//1.获取到查询后的集合
var list = bll.Show();
//2. 计算出查询后的结果有多少数量 count
int count = list.Count();
//3 .写死每页有5条数据
int pageSize = 5;
//4 计算 当前数据 总共有多少页 注意此处! 注意此处!注意此处!
int totalPage = 0;
if ((count % pageSize) == 0)
{
totalPage = count / pageSize;
}
else
{
totalPage = (count / pageSize) + 1;
}
//5 当pageIndex 值大于总页数的时候 将 pageIndex等于 总页数
if (pageIndex > totalPage)
{
pageIndex = totalPage;
}
//5 假设 pageIndex等于 -1 的时候 就是求最后一页 尾页
if (pageIndex == -1)
{
pageIndex = totalPage;
}
//5 假设 pageIndex等于 0 的时候 就是求第一页
if (pageIndex == 0)
{
pageIndex = 1;
}
//最后 算分页
list = list.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
return list;
}
最后使用跨域 app_start
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步