.net core Webapi +EF


開發工具 Vs2017 +MSsqlsever

打開VS2017,新建web項目

 

點擊確認,生成項目,在項目中增加文件夾Model,在Model中增加類TodoItem

1 public class TodoItem
2     {
3         public long Id { get; set; }
4         public string Name { get; set; }
5         public bool IsComplete { get; set; }
6 
7     }
View Code

在Model中增加類TodoContext,用於與數據庫的交互

1  public class TodoContext : DbContext
2     {
3         public TodoContext(DbContextOptions<TodoContext> options)
4             : base(options)
5         {
6         }
7 
8         public DbSet<TodoItem> TodoItems { get; set; }
9     }
View Code

打開appsettings.json,配置數據庫連接字符串

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "TodoContext": "Server=.;Database=WebApiDemo;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

}

在Startup中,找到注冊服務的方法ConfigureServices中注冊數據庫上下文,並指定數據庫為sqlserver

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddDbContext<Models.TodoContext>(opt =>
             opt.UseSqlServer(Configuration.GetConnectionString("TodoContext")));  //使用SqlServer數據庫

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

至此,基本的配置已經完成,現在用EF的codefirst方式,創建數據庫,通過工具-》NuGet包管理器--》程序包管理器控制台 調出控制台

命令如下:

Add-Migration Initial
Update-Database

  現在數據庫就已經搭建完畢

 

接下來我們在Control文件夾下增加TodoController 

 [Route("api/[controller]")]
    [ApiController]
    public class TodoController : ControllerBase
    {
        private readonly TodoContext _context;

        public TodoController(TodoContext context)
        {
            _context = context;

            if (_context.TodoItems.Count() == 0)
            {
                // Create a new TodoItem if collection is empty,
                // which means you can't delete all TodoItems.
                _context.TodoItems.Add(new TodoItem { Name = "Item1" });
                _context.SaveChanges();
            }
        }

        // GET: api/Todo
        [HttpGet]
        public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()
        {
            return await _context.TodoItems.ToListAsync();
        }

        // GET: api/Todo/5
        [HttpGet("{id}")]
        public async Task<ActionResult<TodoItem>> GetTodoItem(long id)
        {
            var todoItem = await _context.TodoItems.FindAsync(id);

            if (todoItem == null)
            {
                return NotFound();
            }

            return todoItem;
        }
    }

  至此,整個Api項目已經搭建完畢,現在可以驗證是否OK

看到調用API,已經成功返回值,接下來一篇我們就聊聊常用的Post和Get,以及傳參的事情


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM