EF框架的DB First实现
首先建一个.NET的类库项目(Model层)
然后安装EF
新建数据模型
选择“来自数据库的EF设计器”,下一步
连接数据库
选择对象
生成之后就有了edmx
新建DAL数据访问层,引用Model层,然后引用EF
新建BaseService类
public class BaseService<T> : IDisposable where T : class, new() { protected readonly con _db; public BaseService(con db) { _db = db; } public void Dispose() { _db.Dispose(); } public async Task CreateAsync(T t, bool saved = true) { _db.Set<T>().Add(t); if (saved) await _db.SaveChangesAsync(); } public async Task SaveAsync(bool isValid = true) { if (!isValid) { _db.Configuration.ValidateOnSaveEnabled = false; await _db.SaveChangesAsync(); _db.Configuration.ValidateOnSaveEnabled = true; } await _db.SaveChangesAsync(); } public async Task EditAsync(T t, bool saved = true) { _db.Entry(t).State = EntityState.Modified; if (saved) await SaveAsync(false); } public async Task RemoveAsync(Guid id, bool saved = true) { //T t = new T() //{ // Id = id //}; //_db.Entry(t).State = EntityState.Unchanged; //t.IsRemoved = true; if (saved) await SaveAsync(false); } /// <summary> /// 获取全部数据 /// </summary> /// <returns></returns> public IQueryable<T> GetAll() { return _db.Set<T>().AsNoTracking(); } }
新建UserService类,继承BaseService
新建BLL业务逻辑层,引用DAL和Model层,然后引用EF
新建UserManager类
创建WebApi项目,设为启动项,引用BLL层,引用EF,在Web.config中添加数据库连接字符串
新建UserController控制器
在Postman中调用
这是异步的,返回信息没有封装,这里只做简单的DbFirst示例