ASP .NET EF模型创建以及双表关系建立

文章目录

  • 准备工作
  • 一、创建表格以及两表外键连接
  • 二、EF模型创建
    • 1.连接sql server数据库
    • 2.创建网页显示表格数据
  • 错误总结


准备工作

本文工具sql server和Visual Studio 2022,Visual Studio项目创建新建项目->选择c# windows web

找到并选择ASP.NET Web应用程序(.NET Framework)->创建点击选择MVC->创建文件成功。

该文章是基于MVC项目模版下!建议先看总结!


一、创建表格以及两表外键连接

1.示例:创建Users和Roles如图:

2.给UserId和RoleId设置主键,右击Users表中的RoleId点击关系

设置表和列规范如下图:

外键关系创建成功 

二、EF模型创建

1.连接sql server数据库

1).进入Visual Studio点开sql server对象资源管理器

右击点击添加sql server选择本地服务器并将信任服务器证书更改为True,点击连接。

 2).构建EF模型

(1)右击Models->添加->新建项

(2)选择 ADO.NET实体数据模型->来自数据库的EF设计器->新建连接->输入本机的服务器名称->选择表格所在服务器->选择表格所在数据库。->测试连接->连接成功->确定

  

(3)实体模型向导->下一步->选择表格->完成->创建EF模型成功

2.创建网页显示表格数据

1.Controllers文件下HomeController.cs代码

private readonly studentEntities db=new studentEntities();
public ActionResult Index()
{
    var results=db.Roles.ToList();  
    return View(results);
}

2.home文件下Index.cshtml主页代码

@model IEnumerable<WebApplication1.Models.Roles>
    <table class="table table-bordered">
        <tr>
            <td>@Html.DisplayNameFor(model => model.Roleld)</td>
            <td>@Html.DisplayNameFor(model => model.RoleName)</td>
        </tr>
        @foreach (var item in Model)
            {
                <tr>
                    <td>@Html.DisplayFor(r => item.Roleld)</td>
                    <td>@Html.DisplayFor(r => item.RoleName)</td>
                </tr>
            }
    </table>

3.主页运行结果如下:


错误总结

1.两表外键关系建立发生错误 错误如图

 此处提示表中的列与现有主键或UNIQUE约束不匹配

官方解释是:外键关系的主键方上的列必须参与主键或唯一约束。为选定的一个表设置主键或唯一约束后,即可为该表定义其他关系。

通俗点就是外键列必须包含的值必须存在于被引用表的主键或唯一键列中。最后发现是忘记给表格设置主键。

2.连接时需要信任服务器证书更改为True,以及在新建连接界面勾选信任服务器证书

相关推荐

  1. django 创建模型中的meta

    2024-03-28 13:50:01       48 阅读
  2. hive创建hbase外部关联实例

    2024-03-28 13:50:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-28 13:50:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-28 13:50:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-28 13:50:01       87 阅读
  4. Python语言-面向对象

    2024-03-28 13:50:01       96 阅读

热门阅读

  1. 搭建Docker Notary服务

    2024-03-28 13:50:01       44 阅读
  2. 如何在服务器上传/下载文件

    2024-03-28 13:50:01       34 阅读
  3. 【前端学习——css篇】4.px和rem的区别

    2024-03-28 13:50:01       41 阅读
  4. babel.min.js -1

    2024-03-28 13:50:01       33 阅读
  5. 1.linux的时间问题

    2024-03-28 13:50:01       37 阅读
  6. linux的git命令学习[常见命令]

    2024-03-28 13:50:01       43 阅读
  7. npm命令简单详解

    2024-03-28 13:50:01       40 阅读
  8. SpringBoot的config bean使用中的坑

    2024-03-28 13:50:01       46 阅读
  9. 面试算法-114-打家劫舍 II

    2024-03-28 13:50:01       40 阅读
  10. Spring总结

    2024-03-28 13:50:01       32 阅读
  11. Kubernetes中的Pod处于Pending状态的原因

    2024-03-28 13:50:01       36 阅读
  12. DevOps迈向标准化,平台工程让开发运维更轻松

    2024-03-28 13:50:01       39 阅读