zoukankan      html  css  js  c++  java
  • 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表新增意外数据的巨大风险!

  • 相关阅读:
    求素数(定义法,埃式法,欧拉法)
    打表法
    python学习日记(匿名函数)
    python学习日记(编码再回顾)
    python学习日记(文件操作练习题)
    python学习日记(迭代器、生成器)-乱七八糟
    python学习日记(生成器函数进阶)
    python学习日记(装饰器的补充)
    python学习日记(函数--装饰器)
    python学习日记(函数进阶)
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/10783011.html
Copyright © 2011-2022 走看看