一、Attribute特性/标签
1.Attribute用来对类、属性、方法等标注额外的信息,贴一个标签
简单的说,定制特性Attribute,本质上就是一个类,它为目标元素提供关联附加信息,并在运行时以反射的方式来获取附加信息。
[Obsolete("此方法已过时")]
public void SayHi()
{

}
加上Obsolete特性,当鼠标放到调用方法上的时候,就会提示此方法已过时
2.Attribute自定义特性类
Attribute就是类,Attribute类名一般都以Attribute结尾
不带数据的特性类
//定义 特性类
public class FlyAttribute : Attribute
{
}

//使用 自定义特性
[Fly] //或者 [FlyAttribute] 可省略 Attribute
puclic class Dog
{
}

带数据的特性类
//定义 特性类
public class FlyAttribute : Attribute
{
public string Name{get;set;}
public FlyAttribute(string strName)
{
this.Name = strName;
}
}

//使用 自定义特性
[Fly("小白")] //或者 [FlyAttribute] 可省略 Attribute
puclic class Dog
{
}

3.获取特性里的数据
通过反射获取
Dog d = new Dog();
Type dogType = d.GetType();
object [] attrs = t.GetCustomAttributes(typeof(FlyAttribute), false);
FlyAttribute dogAttr = attrs[0] as FlyAttribute;
string strName = dogAttr.Name;

二、EF
1.NHibernate不需要写sql语句;ibaties需要写sql语句,是半开放的持久层框架。
2.edmx文件解析
edmx定义三大部分,SSDL content(定义数据库部分)、CSDL content(定义C#类)、C-S mapping content(定义数据库和C#类之间的关系)
3.EF删除、修改
User u = new User(){id=1};
db.Users.Attach(u);
db.Users.Remove();
db.SaveChanges();

User u = new User(){id=1,UserName="aa"};
DbEntityEntry<User> entry = db.Entry<User>(u);
entry.State = EntityState.Unchanged;
entry.Property("UserName").IsModified = true;
db.SaveChanges();
4.延迟加载
IQueryable<UserAddress> addrs = db.UsersAddresses.Where(x=>x.userId = 1);//真实返回的是DbQuery对象,以接口的形式接收
当外键实体相同的时候,只会查询一次出来,不会再次查询
5.表内连接
IQueryable<UserAddress> addrs = db.UsersAddresses.Include("Users");
6.代理类对象
User user = db.Users.Where(u=>u.id=1).FirstOrDefault();//注意,此时返回的是一个User类的代理类对象(包装类对象)

.net学习之Attribute特性和EF关键知识点的更多相关文章

  1. Elasticsearch 6.x版本全文检索学习之分布式特性介绍

    1.Elasticsearch 6.x版本全文检索学习之分布式特性介绍. 1).Elasticsearch支持集群默认,是一个分布式系统,其好处主要有两个. a.增大系统容量,如内存.磁盘.使得es集 ...

  2. Net中Attribute特性的高级使用及自定义验证实现

    好久没写博客了,今天在百忙之中抽空来写篇文章,记录一下最近深入学习Attribute特性的笔记及心得.~~ 一.什么是特性? 特性(Attribute)是用于在运行时传递程序中各种元素(比如类.方法. ...

  3. [C#]Attribute特性(2)——方法的特性及特性参数

    上篇博文[C#]Attribute特性介绍了特性的定义,类的特性,字段的特性,这篇博文将介绍方法的特性及特性参数相关概念. 3.方法的特性 之所以将这部分单列出来进行讨论,是因为对方法的特性查询的反射 ...

  4. 9.翻译系列:EF 6以及EF Core中的数据注解特性(EF 6 Code-First系列)

    原文地址:http://www.entityframeworktutorial.net/code-first/dataannotation-in-code-first.aspx EF 6 Code-F ...

  5. 9.4 翻译系列:EF 6以及 EF Core中的NotMapped特性(EF 6 Code-First系列)

    原文链接:http://www.entityframeworktutorial.net/code-first/notmapped-dataannotations-attribute-in-code-f ...

  6. .NET进阶篇03-Reflection反射、Attribute特性

    知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 内容目录 一.概述二.反射1.反射使用2.创建对象3.调用方法4.字段属性三.特性四.总结 一.概述 反射其实无处不在,我们用VS进行调试时候, ...

  7. [C#]Attribute特性(3)——AttributeUsage特性和特性标识符

    相关文章   [C#]Attribute特性 [C#]Attribute特性(2)——方法的特性及特性参数 AttributeUsage特性 除了可以定制自己的特性来注释常用的C#类型外,您可以用At ...

  8. 关于C# 中的Attribute 特性

    关于C# 中的Attribute 特性 作者: 钢钢  来源: 博客园  发布时间: 2011-01-09 23:30  阅读: 13921 次  推荐: 12   原文链接 [收藏] 摘要:纠结地说 ...

  9. Attribute特性验证模型model

    数据验证我们往往分为前台验证和后台验证,而我们的后台验证每到一个方法中就要去验证一次,这样的代码想想都难以维护,这篇我们这篇文章就是为了解决这样的问题.用attribute 这个特性来解决这样的问题 ...

随机推荐

  1. Android列表控件ListView详解

    ListView绝对可以称得上是Android中最常用的控件之一,几乎所有应用程序都会用到它. 由于手机屏幕空间都比较有限,能够一次性在屏幕上显示的内容并不多,当我们的程序中有大量的数据需要展示的时候 ...

  2. 51Nod 1250 排列与交换

    Description 统计 \(1...n\) 的排列,恰好进行 \(k\) 次相邻交换和至多进行 \(k\) 次交换生成的不同的序列个数. Sol DP. 好妙的题啊... 首先看第一个问题. 对 ...

  3. PyQt4 QListview控件使用方法

    1.往QListView控件内写入数据 strlist=QStringList()strlist.append('hello')strm=QStringListModel(strlist)self.u ...

  4. sublime text 个性设置

    http://stackoverflow.com/questions/13781833/sublime-text-2-how-to-change-the-font-size-of-the-file-s ...

  5. Linux查看文件编码格式及文件编码转换

    Linux查看文件编码格式及文件编码转换   如果你需要在Linux 中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题.Windows中默认的文件格式是GBK(gb2312),而L ...

  6. poj 2378 (dijkstra)

    http://poj.org/problem?id=2387 一个dijkstra的模板题 #include <stdio.h> #include <string.h> #de ...

  7. Shell数组相关操作

    参考:http://www.cnblogs.com/chengmo/archive/2010/09/30/1839632.html 创建数组 a=( ) 获得数组长度 ${#a[@]} #${#变量} ...

  8. oracle11g 连接问题

    一.The Network Adapter could not establish the connection  状态: 失败 -测试失败: IO 错误: The Network Adapter c ...

  9. bind+dlz+mysql实现区域记录动态更新

    BIND-DLZ实验:http://bind-dlz.sourceforge.net/ 实验环境:RHEL4,BIND-9.5.0-P2.tar.gz(9.4.0以上版本都已含DLZ补丁),Mysql ...

  10. Debian Vi 简介

    1.Vi 简介    Vi 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台  Unix 机器都会提供这套软体.Linux 当然也有,它的 vi 其实是 elvis (版权问题),不 ...