经常在程序中遇到两个空值报错问题;

问题1:int类型如果为不可空,假如传进去null,会报错

问题2:EF的获得单个实体的Model如果为空,那么后面如果跟上属性会报错

解决问题1:

一般属性都设为可空

再自己封装一个 Toint方法,如果对象为null,则转换为0(或者使用.net类库自带的方法GetValueOrDefault())

解决问题2

下图为获得单个实体的方法,需要传入不为空的整形

在调用时可 areaapp.GetForm(id.ToInt())

解决调用空实体实体后检索里面属性报错的方法:

1.可空类型修饰符(?)

2、空合并运算符(??)

用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为null,则此运算符将返回左操作数,否则返回右操作数。
       例如:a ?? b 当a为null时则返回b,a不为null时则返回a本身。

判断实体是否为空,如果为空再实例出一个新的实体

Linq的整型或实体类null引发的报错问题的更多相关文章

  1. C#实体类null自动转空字符串

    C#实体类null自动转空字符串 using System.ComponentModel.DataAnnotations; [DisplayFormat(ConvertEmptyStringToNul ...

  2. linux下启动dbca或netmgr类的图形界面报错解决

    linux下启动dbca或netmgr类的图形界面报错解决    Xlib: connection to ":0.0" refused by server Xlib: No pro ...

  3. 因OpenCV版本不一致所引发的报错

    目录 一 因OpenCV版本不一致所引发的报错 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 因OpenCV版本不一致所引发的报错 今天遇到了一个很有意思的报错. 事情是这样的, 在编译& ...

  4. LINQ to SQL 建立实体类

    使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就是实体类.在运行时,LINQ to SQL 根据LINQ表达式或查询运算符生成SQL语句,发送到数据库进行操作.数据库返回后,L ...

  5. 步步学LINQ to SQL:为实体类添加关系【转】

    [IT168 专稿]本文详细为你阐述了如何在你的应用程序中实现LINQ to SQL.附件的示例程序包括了这里探讨的所有代码,还提供了一个简单的WPF图形界面程序来显示通过数据绑定返回的结果集. 第一 ...

  6. LINQ to SQL 建立实体类 (转)

    http://www.cnblogs.com/DebugLZQ/archive/2012/11/14/2770449.html 使用LINQ to SQL时,需要首先建立用于映射数据库对象的模型,也就 ...

  7. linq分组求和_实体类和datatable

    1.数据分组求合,分别用的实体类以及datatable来分组求合,还有分组求和之后的如何取值 //实体类版本 List<ProgramTimeModel> TotalAllList = G ...

  8. CreateMutex 创建一个有名字的互斥量的时候hMutex=CreateMutex(NULL,TRUE,"tickets")报错

    编译器报错: 不能将参数 3 从“const char [8]”转换为“LPCWSTR”,怎么改成LPCWSTR类型 更改方法: hMutex=CreateMutex(NULL,TRUE,L" ...

  9. moviepy音视频剪辑VideoClip类fl_image方法image_func报错ValueError: assignment destination is read-only解决办法

    ☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类VideoClip的fl_image方法用于进行对剪辑帧数据进行变换. 调用语法:fl_image(self, im ...

随机推荐

  1. 吴裕雄--天生自然 JAVA开发学习:网络编程

    import java.net.*; import java.io.*; public class GreetingClient { public static void main(String [] ...

  2. socket握手SYN和ACK理解

    ACK 英文缩写: ACK (ACKnowledge Character) 中文译名: 确认字符 分类: 传输与接入 解释: 在数据通信传输中,接收站发给发送站的一种传输控制字符.它表示确认发来的数据 ...

  3. [LC] 96. Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1 ... n? Example ...

  4. 收集到的技术相关网址——python

    1.Python中常用数据库访问接口模块 专用数据库连接模块——MySQL.SQLite.PostgreSQL.Oracle.IBM DB2.Infomix.Interbase.Sybase.SQL ...

  5. emacs 入门第一课:Emacs里的基本概念

    Table of Contents 无聊的开场白 buffer(缓冲区) window(窗口)与frame Emacs的mode Emacs Lisp 函数function.命令command.键绑定 ...

  6. CF-1117C-Magic Ship

    二分 C - Magic Ship GNU C++11 Accepted 31 ms 1700 KB #include "bits/stdc++.h" using namespac ...

  7. HDU1233 还是畅通工程

    题目: Problem Description 某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离.省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连 ...

  8. 吴裕雄--python学习笔记:os模块的使用

    在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路径进行操作,这就依赖于os模块. 1.当前路径及路径下 ...

  9. @RequestBody 参数为string正常改为对象时不报错但获取不到值

    @RequestBody 参数为string正常改为对象时不报错但获取不到值 试了好多办法都不行 最后 原因  jackson 包的版本号不匹配 2.9.0的不能封装进对象,可以运行且不报错但获取不到 ...

  10. Android 代码混淆规则

    1. Proguard介绍 Android SDK自带了混淆工具Proguard.它位于SDK根目录toolsproguard下面.ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器 ...