一、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. job_queue_processes参数讲解

    http://blog.sina.com.cn/s/blog_62defbef0101opv0.html http://blog.163.com/donfang_jianping/blog/stati ...

  2. block 在ARC和非ARC下的不同含义

    Block的循环引用 对于非ARC下, 为了防止循环引用, 我们使用__block来修饰在Block中使用的对象: 对于ARC下, 为了防止循环引用, 我们使用__weak来修饰在Block中使用的对 ...

  3. 给UIView添加手势

    对于不能addTarget的UI对象,添加手势为他们带来了“福音”,以为UIView添加手势为例,揭开手势的面目. 1,创建一个view先, UIView * jrView=[[UIViewalloc ...

  4. OpenCV成长之路(10):视频的处理

    视频中包含的信息量要远远大于图片,对视频的处理分析也越来越成为计算机视觉的主流,而本质上视频是由一帧帧的图像组成,所以视频处理最终还是要归结于图像处理,但在视频处理中,有更多的时间维的信息可以利用.本 ...

  5. 中文的加密传输(python版)

    信息传输过程中,可能会被各种监听. 这里介绍一种简单的加密算法(可逆). 正向加密: 字符串 -> 字节(char->int转换) -> 异或每个字节某个KEY  ->字节(i ...

  6. Tomcat异常 Multiple Contexts have a path of "/qqshl".解决方法

    Tomcat异常 Multiple Contexts have a path of "/qqshl".解决方法 找到tomcat映射文件Service.xml,将文件中的conte ...

  7. Glyphicons字体图标

    Glyphicons字体图标-----好处可以减少请求,容易控制样式! <p> <button type="button" class="btn btn ...

  8. 【leetcode】Word Break II

    Word Break II Given a string s and a dictionary of words dict, add spaces in s to construct a senten ...

  9. iOS App Extensions 推荐文章

    写的非常不错,读完后,基本的extension的套路就清楚了,也是我们的园友写的,感谢他: http://www.cnblogs.com/xdream86/p/3855932.html 下面这个教程是 ...

  10. iOS UIViewController 和 nib 相关的3个方法

    iOS UIViewController 的 awakeFromNib 以及 - (id)initWithCoder:(NSCoder *)aDecoder 和 - (instancetype)ini ...