zoukankan      html  css  js  c++  java
  • .net学习之Attribute特性和EF关键知识点

    一、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类的代理类对象(包装类对象)

  • 相关阅读:
    C#表示空字符串
    char varchar nvarchar区别
    WCF 服务器端 上传图片
    各种算法时间复杂度
    ADO.net 对象
    走出浮躁的泥沼
    英语学习
    前端获取GridView和ASPxGridView单元格中的值
    【dfs+染色】【HDOJ】5652 India and China Origins
    【模拟】【codeforces】599B Spongebob and Joke
  • 原文地址:https://www.cnblogs.com/yxlblogs/p/3911600.html
Copyright © 2011-2022 走看看