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就能通过一些引用属性.导航属性等检测到模型之间的 ...
随机推荐
- 使用MongoDB在项目中实际运用
一.MongoDB,一个数据库,我们怎么去使用它呢?我们首先了解一下什么是MongoDb 官网的介绍是:MongoDB是专为可扩展性,高性能和高可用性而设计的数据库.它可以从单服务器部署扩展到大型.复 ...
- 最详细的Windows平台安装MongoDB教程
一.MongoDB简介 MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB将数据存储为一个文档,数据结构由键值(ke ...
- Python调用ansible API系列(二)执行adhoc和playbook
执行adhoc #!/usr/bin/env python # -*- coding: utf-8 -*- import sys from collections import namedtuple ...
- 游戏服务器h2engine架构优化和跨平台设计
H2engine的GitHub星星不知不觉已经破百了,也没有特意推广过,但是慢慢的关注的人越来越多.因为事情多,好久没有写东西了,前一段时间有了一些想法,把h2engine又更新了一下,感觉h2eng ...
- MySQL 四种隔离级别
什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结束有 ...
- vue 中使用sass实现主体换肤
有如下代码要实现换肤功能 <template> <div class="app-root" :class="themeClass"> & ...
- arcgis api 4.x for js 结合 react 入门开发系列初探篇(附源码下载)
你还在使用 JQuery 或者 Dojo 框架开发 arcgis api 4.x for js 吗?想试试模块化开发吗?随着前端技术的发展,arcgis api 4.x for js 也有了结合 re ...
- 供应链管理为什么要上企业自主可控的免费开源ERP Odoo
引言 今天的很多企业,无论是制造业,还是商贸行业,如果说没有针对供应链管理的信息系统,那可能是真的冤枉他们了:采购.仓存.销售.存货核算这些模块,早早的买来,早早的用上了,但也早早的被下了结论:食之无 ...
- Git原理与命令大全
Git (wiki: en chs )是一个免费开源的分布式版本控制系统,由linux内核作者linus Torvalds开发,大型开源项目linux kernel.Android.chromium ...
- 阿里云RDS for SQL Server测试吐槽
最近测试了一下阿里云RDS for SQL Server,有些设计简直就是反人类,让人不得不吐槽一番. 1:控制台创建数据库时,数据库名不能包含大小字母. 如上截图所示,数据库名称不能包含大写字母,好 ...