https://docs.efproject.net/en/latest/providers/npgsql/index.html

前面在CentOS6.7环境下配置好了PostgreSQL, 就顺便试了一下 ASP.NET Core 1.0 环境下EF与PostgreSQL的使用,就是.NET Core 还不支持CentOS,要么就可以部署一下试试。

依赖包

  1. "dependencies": {
  2. "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
  3. "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
  4. "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
  5. "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
  6. "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
  7. "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
  8. "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
  9. "Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
  10. "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
  11. "Microsoft.Extensions.Logging": "1.0.0-rc1-final",
  12. "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
  13. "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
  14. "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
  15. "EntityFramework.Commands": "7.0.0-rc1-final",
  16. "EntityFramework7.Npgsql": "3.1.0-rc1-3",
  17. "EntityFramework7.Npgsql.Design": "3.1.0-rc1-5"
  18. },
  19.  
  20. "commands": {
  21. "web": "Microsoft.AspNet.Server.Kestrel",
  22. "ef": "EntityFramework.Commands"
  23. },

CODE FISRT

  1. public class StockHqDbContext : DbContext
  2. {
  3. public DbSet<Blog> Blogs { get; set; }
  4. public DbSet<Post> Posts { get; set; }
  5.  
  6. protected override void OnModelCreating(ModelBuilder modelBuilder)
  7. {
  8. // Make Blog.Url required
  9. modelBuilder.Entity<Blog>()
  10. .Property(b => b.Url)
  11. .IsRequired();
  12. }
  13. }
  14. public class Blog
  15. {
  16. public int BlogId { get; set; }
  17. public string Url { get; set; }
  18. public List<Post> Posts { get; set; }
  19. }
  20. public class Post
  21. {
  22. public int PostId { get; set; }
  23. public string Title { get; set; }
  24. public string Content { get; set; }
  25. public int BlogId { get; set; }
  26. public Blog Blog { get; set; }
  27. }

注册PostgreSqlProvider

  1. public void ConfigureServices(IServiceCollection services)
  2. {
  3. var connection = Configuration["PostgreSqlProvider:ConnectionString"];
  4. services.AddEntityFramework()
  5. .AddNpgsql()
  6. .AddDbContext<StockHqDbContext>(options => options.UseNpgsql(connection));
  7. // Add framework services.
  8. services.AddMvc();
  9. }

配置文件

  1. {
  2. "Logging": {
  3. "IncludeScopes": false,
  4. "LogLevel": {
  5. "Default": "Verbose",
  6. "System": "Information",
  7. "Microsoft": "Information"
  8. }
  9. },
  10. "PostgreSqlProvider": {
  11. "ConnectionString": "User ID=postgres;Password=xxxxx;Host=xxx.xxx.xxx.xxx;Port=5432;Database=stockhq;Pooling=true;"
  12. }
  13. }

执行命令

  1. dnvm use 1.0.0-rc1-final(dnvm install 1.0.0-rc1-final)
  2. dnx ef migrations add FirstMigration
  3. dnx ef database update

构造页面

  1. public class BlogsController : Controller
  2. {
  3. private StockHqDbContext _context;
  4.  
  5. public BlogsController(StockHqDbContext context)
  6. {
  7. _context = context;
  8. }
  9.  
  10. public IActionResult Index()
  11. {
  12. return View(_context.Blogs.ToList());
  13. }
  14.  
  15. public IActionResult Create()
  16. {
  17. return View();
  18. }
  19.  
  20. [HttpPost]
  21. [ValidateAntiForgeryToken]
  22. public IActionResult Create(Blog blog)
  23. {
  24. if (ModelState.IsValid)
  25. {
  26. _context.Blogs.Add(blog);
  27. _context.SaveChanges();
  28. return RedirectToAction("Index");
  29. }
  30.  
  31. return View(blog);
  32. }
  33.  
  34. }

视图

  1. @model IEnumerable<StockHq.Models.Blog>
  2. @{
  3. ViewBag.Title = "Blogs";
  4. }
  5. <h2>Blogs</h2>
  6. <p>
  7. <a asp-controller="Blogs" asp-action="Create">Create New</a>
  8. </p>
  9. <table class="table">
  10. <tr>
  11. <th>Id</th>
  12. <th>Url</th>
  13. </tr>
  14. @foreach (var item in Model)
  15. {
  16. <tr>
  17. <td>
  18. @Html.DisplayFor(modelItem => item.BlogId)
  19. </td>
  20. <td>
  21. @Html.DisplayFor(modelItem => item.Url)
  22. </td>
  23. </tr>
  24. }
  25. </table>
  26.  
  27. @model StockHq.Models.Blog
  28. @{
  29. ViewBag.Title = "New Blog";
  30. }
  31. <h2>@ViewData["Title"]</h2>
  32. <form asp-controller="Blogs" asp-action="Create" method="post" class="form-horizontal" role="form">
  33. <div class="form-horizontal">
  34. <div asp-validation-summary="ValidationSummary.All" class="text-danger"></div>
  35. <div class="form-group">
  36. <label asp-for="Url" class="col-md-2 control-label"></label>
  37. <div class="col-md-10">
  38. <input asp-for="Url" class="form-control" />
  39. <span asp-validation-for="Url" class="text-danger"></span>
  40. </div>
  41. </div>
  42. <div class="form-group">
  43. <div class="col-md-offset-2 col-md-10">
  44. <input type="submit" value="Create" class="btn btn-default" />
  45. </div>
  46. </div>
  47. </div>
  48. </form>

访问:http://localhost:49648/Blogs/Create 增加数据,完事,睡觉。

REFER:
http://dotnet.github.io/getting-started

https://github.com/aspnet/EntityFramework

https://github.com/npgsql/npgsql

.NET跨平台:在Linux上基于ASP.NET 5用EF7生成数据库

http://www.cnblogs.com/dudu/p/4621933.html

十分钟轻松让你认识Entity Framework 7

http://www.cnblogs.com/n-pei/p/4274907.html

ASP.NET Core 1.0 中 EntityFramework 与 PostgreSQL 的使用的更多相关文章

  1. ASP.NET Core 1.0 中的依赖项管理

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  2. 在ASP.NET Core 1.0中如何发送邮件

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:目前.NET Core 1.0中并没有提供SMTP相关的类库,那么要如何从ASP.NE ...

  3. ASP.NET Core 1.0 中使用 Swagger 生成文档

    github:https://github.com/domaindrivendev/Ahoy 之前文章有介绍在ASP.NET WebAPI 中使用Swagger生成文档,ASP.NET Core 1. ...

  4. 用ASP.NET Core 1.0中实现邮件发送功能

    准备将一些项目迁移到 asp.net core 先从封装类库入手,在遇到邮件发送类时发现在 asp.net core 1.0中并示提供SMTP相关类库,于是网上一搜发现了MailKit 好东西一定要试 ...

  5. 在ASP.NET Core 2.0中使用CookieAuthentication

    在ASP.NET Core中关于Security有两个容易混淆的概念一个是Authentication(认证),一个是Authorization(授权).而前者是确定用户是谁的过程,后者是围绕着他们允 ...

  6. 如何在ASP.NET Core 2.0中使用Razor页面

    如何在ASP.NET Core 2.0中使用Razor页面  DotNetCore2017-11-22 14:49 问题 如何在ASP.NET Core 2.0中使用Razor页面 解 创建一个空的项 ...

  7. ASP.NET Core 3.0中使用动态控制器路由

    原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...

  8. asp.net core 3.0 中使用 swagger

    asp.net core 3.0 中使用 swagger Intro 上次更新了 asp.net core 3.0 简单的记录了一下 swagger 的使用,那个项目的 api 比较简单,都是匿名接口 ...

  9. 探索 ASP.Net Core 3.0系列三:ASP.Net Core 3.0中的Service provider validation

    前言:在本文中,我将描述ASP.NET Core 3.0中新的“validate on build”功能. 这可以用来检测您的DI service provider是否配置错误. 具体而言,该功能可检 ...

随机推荐

  1. readystatechange事件

    IE为DOM文档中的某些部分readystatechange事件. 这个事件的目的是提供与文档或元素的加载状态有关的信息,但是这个事件的行为有时候也很难预测. 支持readystatechange事件 ...

  2. codeblocks+SDCC开发51单片机

    说到51,大部分人都是用的是KEIL开发环境,但是KEIL是商业软件,我们一般人都用的是破解版的,如果用于商业就会收到法律诉讼.然而有一款很好的编译器专为51内核而存在.SDCC最大的有点就是开源免费 ...

  3. 20155326 2016-2017-2 《Java程序设计》第7周学习总结

    20155326 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 Lambda (1)如果使用JDK8的话,可以使用Lambda特性去除重复的信息. (2)在 ...

  4. Javaweb异常提示信息统一处理

    Java异常封装(自己定义错误码和描述,附源码) 2016年01月29日 22:30:54 小宝鸽 阅读数:23262 标签: java异常 更多 个人分类: Java基础 所属专栏: Java工作实 ...

  5. Uval4726-数形结合的思想

    题意:给定一段01序列,求一段长度不小于L的连续序列,使其平均值最大 思路:一看就想到了斜率优化,但是用基本的推公示一直没推出来,看了别人的代码,像推出斜率的式子一直没弄出来..后来一看别人写的题解, ...

  6. LDO-AMS1117

    AMS1117 1.是AMS艾默森公司简称.与AMS1117对应的IC有LM1117.AMS1117的最大输入电压为15V,而LM1117的极限是20V. 2.其输出电压有固定式(1.5V,1.8V, ...

  7. (25)uniGUI for C++ builder之UniHTMLMemo初使用及uniGUI如何调用javaScript

    (25)uniGUI for C++ builder之UniHTMLMemo初使用及uniGUI如何调用javaScript 2018年09月29日 22:58:20 中国银行之路在脚下 阅读数:11 ...

  8. DELPHI微信支付代码

    DELPHI微信支付代码   不管是微信支付还是支付宝支付, 3个最棘手的问题是:1,如何生成签名2,支付请求如何提交3, 如何验证签名 下面就围绕这二个问题来讲. 我使用的是XE3. 先看微信支付: ...

  9. 根据cxgrid的filterControl建立强大灵活的过滤器

  10. 如何利用JUnit开展一个简单的单元测试(测试控制台输出是否正确)

    待测类(CreateString)如下: public class CreateString { public void createString() { //Output the following ...