EF 外键不显示、如何让外键显示!增、删、改 操作时,外键不显示,只显示导航属性!
一、问题描述:EF 外键不显示、如何让外键显示!增、删、改 操作时,外键不显示,只显示导航属性!
EF 添加、增加、插入数据时,外键不显示!
二、解决方案:在根据数据库生成模型的时候,选中“在模型中”包括外键列!
情况1:如果你的模型和数据库完全一致,即你没有在模型中添加、修改、删除 数据库没有的属性、键、导航属性等;
那么你可以把模型里的表和视图都删了,再从数据库更新模型,选中你所有需要的表和视图。
情况2:如果你的模型和数据库不一致,即你在模型中有 添加、修改、删除数据库没有的属性、键、导航属性等;
那么先从模型中“仅仅”删除需要“包括外键列”的表,再从数据库更新模型,选中表。

问题根本:EF始乱终弃的默认设置:
在第一次从数据库更新模型的时候,会默认会勾选;
但当你在数据库里新建了一张表,再次从数据库更新模型的时候,不会默认勾选。
你一不留神,就会被EF这始乱终弃的默认设置给带入坑里!在下被坑了两天才爬出来。
三、延伸问题: 不知道的人,可能误以为EF实体模型 根本无法“包括外键列”,而进入另一个死循环:
在添加数据时,将对象直接赋值给对象;
var temp= {Name:“小明”,ClassID:2}
var student= new T_Student();
var class= db.T_Class.Where(d=>d.ClassID=temp.ClassID).FirstOrDefault();
student.Name=temp.Name;
student.Class= class;
这种方案,在一般情况可能测不出问题;但是,千万不要这么做!!!
它潜在着导致 T_Class表新增意外数据的巨大风险!
EF 外键不显示、如何让外键显示!增、删、改 操作时,外键不显示,只显示导航属性!的更多相关文章
- SQL Server T—SQL 语句【建 增 删 改】(建外键)
一 创建数据库 如果多条语句要一起执行,那么在每条语句之后需要加 go 关键字 建库 : create database 数据库名 create database Dat ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- Electron实用技巧-开机启动时隐藏主窗口,只显示系统托盘
# 1 在桌面软件中,开机自启动是很常见的功能,在electron中也提供了很好的支持,以下是主要代码: //应用是否打包if (app.isPackaged) { //设置开机启动 app.se ...
- word中选择嵌入式时图片被遮住,只显示小部分的解决方法
选中图片,点击如下 选择 行距选项 将行距改为单位行距即可.
- input="file" 浏览时只显示指定excel文件,筛选特定文件类型
<p>显示 .xls, .xlsx, .csv 文件...</p> <input type="file" accept=".csv, app ...
- nput="file" 浏览时只显示指定excel文件,筛选特定文件类型
<p>显示 .xls, .xlsx, .csv 文件...</p><input type="file" accept=".csv, appl ...
- EF实体框架-从数据库更新模型 一部分表的外键(导航属性)无法显示
从数据库更新模型 要想让数据库表之间的外键关系 显示到实体模型的导航属性中去. 表的外键 对应另一张表的字段要是主键,唯一键显示不出来
- EF Code First 导航属性 与外键(转载)
EF Code First 导航属性 与外键 一对多关系 项目中最常用到的就是一对多关系了.Code First对一对多关系也有着很好的支持.很多情况下我们都不需要特意的去配置,Code First就 ...
- EF Code First 导航属性 与外键
一对多关系 项目中最常用到的就是一对多关系了.Code First对一对多关系也有着很好的支持.很多情况下我们都不需要特意的去配置,Code First就能通过一些引用属性.导航属性等检测到模型之间的 ...
随机推荐
- ThreadLocal的应用与实现原理
本文对ThreadLocal的分析基于JDK 8. 本文大纲 1. ThreadLocal快速上手 2. ThreadLocal应用场景 3. TheadLocal set与get方法简析 4. Th ...
- asp.net core系列 61 Ocelot 构建服务发现简单示例
一.概述 Ocelot允许指定服务发现提供程序,如Consul或Eureka. 这二个中间件是用来实现:服务治理或秒服务发现,服务发现查找Ocelot正在转发请求的下游服务的主机和端口.目前Ocelo ...
- 如何查找元素对应事件的js代码,检测定位js事件
比如一张图片当鼠标放到上面时,图片改变.想找到这个事件对应的js代码,假设另存为html之后,文件夹中有.js文件. 如果你会调试,可以用打开浏览器的调试功能,以chrome为例,按F12打开调试窗口 ...
- 残差网络(Residual Networks, ResNets)
1. 什么是残差(residual)? “残差在数理统计中是指实际观察值与估计值(拟合值)之间的差.”“如果回归模型正确的话, 我们可以将残差看作误差的观测值.” 更准确地,假设我们想要找一个 $x$ ...
- org.springframework.cache.interceptor.SimpleKey cannot be cast to java.lang.String
springboot整合redis时,使用@Cacheable注解,如果方法的key参数为空,就会报org.springframework.cache.interceptor.SimpleKey ca ...
- SpringBoot进阶教程(二十五)整合Redis之@Cacheable、@CachePut、@CacheEvict的应用
在上一篇文章(<SpringBoot(二十四)整合Redis>)中,已经实现了Spring Boot对Redis的整合,既然已经讲到Cache了,今天就介绍介绍缓存注解.各家互联网产品现在 ...
- ASP.NET Core - 利用Windsor Castle实现通用注册
问题引入 在ASP.NET Core - 依赖注入这篇文章里面,我们知道了如何利用ASP.NET Core原生的容器来实现依赖注入的,那我们为什么要替换掉默认的 IoC容器呢?从ASP.NET Cor ...
- canvas实现随机验证码
canvas实现随机验证码 知识点 canvas生成背景图和文字 设置字体样式和大小 String的fromCharCode(code码)生成大小写字母和数字 str.toLowerCase()转小写 ...
- css控制元素高度自适应
可以采用元素定位 + padding 的方式使特定元素高度自适应. css 样式: html,body{ height:100%; margin:; padding:; } .wrap { heigh ...
- vue 脚手架 立即可以写业务 vue + vue-router + less + axios + elementUI + moment
https://github.com/cynthiawupore/wq-cli