ibcadmin 发表于 2019-9-12 16:22:54

.net core Webapi +EF

<p>开辟工具 Vs2017 +MSsqlsever</p>
<p>打开VS2017,新建web项目</p>
<p><div align="center"></div></p>
<p><div align="center"></div></p>
<p> </p>
<p>点击确认,天生项目,在项目中增加文件夹Model,在Model中增加类TodoItem</p>
<div align="center"></div><div align="center"></div>

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
<p>在Model中增加类TodoContext,用于与数据库的交互</p>
<div align="center"></div><div align="center"></div>

1public 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
<p>打开appsettings.json,设置数据库毗连字符串</p>

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

}

<p>在Startup中,找到注册服务的方法ConfigureServices中注册数据库上下文,并指定数据库为sqlserver</p>

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

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

<p>至此,根本的设置已经完成,现在用EF的codefirst方式,创建数据库,通过工具-》NuGet包管理器--》步伐包管理器控制台 调出控制台</p>
<p><div align="center"></div></p>
<p>下令如下:</p>

Add-Migration Initial
Update-Database


<p>  现在数据库就已经搭建完毕</p>
<p> <div align="center"></div></p>
<p>接下来我们在Control文件夹下增加TodoController </p>

")]
   
    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
      
      public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()
      {
            return await _context.TodoItems.ToListAsync();
      }

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

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

            return todoItem;
      }
    }


<p>  至此,整个Api项目已经搭建完毕,现在可以验证是否OK</p>
<p><div align="center"></div></p>
<p>看到调用API,已经乐成返回值,接下来一篇我们就聊聊常用的Post和Get,以及传参的变乱</p><br><br/><br/><br/><br/><br/>来源:<a href="https://www.cnblogs.com/NotLaterforever/p/11480341.html" target="_blank">https://www.cnblogs.com/NotLaterforever/p/11480341.html</a>
页: [1]
查看完整版本: .net core Webapi +EF