EF框架的DB First实现

首先建一个.NET的类库项目(Model层)

EF框架的DB First实现

 

 

 然后安装EF

EF框架的DB First实现

 

 

 新建数据模型

EF框架的DB First实现

选择“来自数据库的EF设计器”,下一步

EF框架的DB First实现

 

 

 连接数据库

EF框架的DB First实现

 

 

EF框架的DB First实现

 

 选择对象

EF框架的DB First实现

 

 

生成之后就有了edmx

EF框架的DB First实现

 

 

 新建DAL数据访问层,引用Model层

EF框架的DB First实现

 

 新建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

EF框架的DB First实现

 

 新建BLL业务逻辑层,应用DAL和Model层

EF框架的DB First实现

 

 新建UserManager类

EF框架的DB First实现

 

 

 创建WebApi项目,设为启动项,引用BLL层

EF框架的DB First实现

 

 新建UserController控制器

EF框架的DB First实现

 

上一篇:1232: [Usaco2008Nov]安慰奶牛cheer


下一篇:基础语法