首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

实体类的枚举属性--原来支持枚举类型这么简单,没有EF5.0也可以

通常,我们都是在业务层和界面层使用枚举类型,这能够为我们编程带来便利,但在数据访问层,不使用枚举类型,因为很多数据库都不支持,比如我们现在用的SqlServer2008就不支持枚举类型的列,用的时候也是将枚举类型转换成...既然使用枚举还要将实体类的属性转换下,为何不直接将实体类的属性定义成枚举类型?    ...>.Instance.Update(user); 但是查询实体类的时候会有点小问题,虽然能够正确的从数据库查询,但查看枚举属性的时候会报类型转换错误: //获取一个实体类: Users user=new...)reader["RoleID"];     幸好PDF.NET的实体类认为“实体类是数据的容器”,内部采用一个object[] 保存来自数据库的原始数据,而在使用数据的时候,才来进行类型转换,因此框架原来查询数据...前面已经说过,PDF.NET的实体类是数据的容器,也就是说,我们在内存中将某个属性的值直接设置为枚举类型的值,也可以将内存中的Int 类型的来自数据库的值,在运行时转换成枚举类型。

1.7K100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    了解LINQ

    的对象就是一个实现了IEnumerable的可被枚举的集合 LINQ的基本用法 扩展方法在LINQ的应用:LINQ的流式语法 LINQ的方法一般都是通过扩展方法了扩展的,就如最常用的几个,Where,Any...就是因为LINQ就是为了简单的能够处理复杂集合的数据,那么扩展方法就能够实现较为简单的链式查询,例如: var result= animals.MyWhere(t => t is "Cat" or "Dog...").Select(t=>t.ToUpper()).ToList(); result.ForEach(t =>Console.WriteLine(t)); 输出结果: CAT DOG LINQ的查询表达式...:LINQ的查询语法 假如上述的例子有LINQ的查询表达式来编写,则写法是这样: var result = (from t in animals where t is "Cat...CAT DOG --------------- Expression:System.Linq.Enumerable+WhereSelectListIterator`2[System.String,System.String

    89920

    C#高级程序设计Type类

    C#高级程序设计 一.反射 是.net一种非常重要的机制,通过反射可以在运行时获取类的成员、属性、事件和构造方法等等。有了反射,使我们对类的类型了如指掌。...Name NameSpace 方法比较多: 可以获取字段 可以获取方法 MethodInfo []mi=t.GetMethods(); System.String get_Id() Void set_Id...Int32 GetHashCode() System.Type GetType() System.String ToString() 可以获取构造方法 反射功能非常强大!!!...t.Name); Console.WriteLine(t.Namespace); Console.WriteLine(t.ReflectedType); //获取该成员的类对象...ildasm.exe反编译工具将IL汇编成可跨平台可执行的(pe)文件。可供我们了解别人代码和修改。有了他我们看待问题可以不用停留在编辑器层面,可深入中间层。

    10210

    简单代码生成器原理剖析(一)

    简单代码生成器的基本功能描述: 一键生成Model,DAL,BLL,包括对应数据库中表的Model的自动生成,包括生成属性、添加、修改、删除、查询。 界面展示: ?...生成器开发技术要点: 查询系统视图:INFORMATION_SCHEMA.TABLES、 INFORMATION_SCHEMA.COLUMNS  可以获得数据库中表、列的相关信息。...将字符串写入文本文件:File.WriteAllText() 为了降低开发难度,先假设条件多一些,如表的主键都为Id,且自动增长,之后再逐步完善 关键代码: using System; using System.Collections.Generic...:\"+tableName+"DAL.cs",sb.ToString()); } /// /// 数据库类型转换为...return "ToBoolean"; default: throw new Exception("找不到匹配的数据类型

    1.4K80

    C# 封装实例

    封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。 抽象和封装是面向对象程序设计的相关特性。...C# 支持的访问修饰符如下所示: public:所有对象都可以访问; private:对象本身在对象内部可以访问; protected:只有该类对象及其子类对象可以访问 internal:同一个程序集的对象可以访问...; protected internal:访问限于当前程序集或派生自包含类的类型。...属性值类型:System.Boolean如果处理过事dao件,则为 true; 否则为 false。备注如果未处理事件,则会将它发送到操作系统进行默认处理。...// 属性值类型:System.Boolean如果处理过事dao件,则为 true; // 否则为 false。

    97920

    c#语言学习笔记(1)

    /csharp/ c#是微软开发的,面面相对象的编程语言,再加上微软的ide,开发起来效率比较高,适合个人维护(知乎上说的),感觉和c语言有点相似。...* 本质是从小存储容量数据类型自动转换为大存储容量数据类型, * 从派生类转换为基类。...)的数据 Class1 c1 = new Class2(); // 这里也是隐式转换,将一个新建的 Class2 实例转换为了其基类 Class1 类型的实例 C1...* 当系统调用引用类型的时候,首先去“栈”中获取到地址, * 然后根据地址在“堆”中找到对应的内存空间来获取到对应值。...,可以使用 convert.toint32() 方法, * 也可使用 int 强制转换为整数,使用 int 时并不存在四舍五入的情况,而是直接将后面的小数位数丢掉。

    52320

    C# 基础知识系列- 1 数据类型

    C#为我们内置了几个数据类型供我们使用: 关键词简写 对应的类全称(点击可以查看对应的API) 值范围 说明 bool System.Boolean true、false 该类型只有两个值,用作判断,表示...类型转换 类型转换是指一个类型的数值通过某种手段转换成另一种类型。 类型转换分为两种方式:默认类型转换、强制类型转换。...在强制类型转换之前检测一下是否可以转换为目标类型,如果返回值为 false 依旧要转换的话,那么就会报错。...强制类型转换 强制类型转换分为两种: 在变量前加目标类型强制转换,这个方法与C/C++、Java的方式一致,具体为:C c1 = (C)a;// 代码接上 使用as关键字,as 表示将变量 x 当做类型...使用 Convert.ToXXX(),其中XXX表示转型目标对象。

    1.1K70

    C#3.0新增功能09 LINQ 标准查询运算符 04 运算

    当查询所面向的数据源相互之间具有无法直接领会的关系时,联接就成为一项重要的运算。在面向对象的编程中,这可能意味着在未建模对象之间进行关联,例如对单向关系进行反向推理。...Queryable.AsQueryable Cast 将集合中的元素转换为指定类型。 使用显式类型化的范围变量。...Enumerable.OfTypeQueryable.OfType ToArray 将集合转换为数组。 此方法强制执行查询。 不适用。...Enumerable.ToDictionary ToList 将集合转换为 List。 此方法强制执行查询。 不适用。...Enumerable.ToLookup 查询表达式语法示例 下面的代码示例使用显式类型化的范围变量将类型转换为子类型,然后才访问仅在此子类型上可用的成员。

    9.7K20

    ORM查询语言(OQL)简介--高级篇:脱胎换骨

    ,不能像SQL那么灵活的进行各种子查询,其实不支持的原因其中一个也是因为OQL查询不支持表的别名,另外一个原因是子查询无法获取到父查询的表名和字段名。...尽管EF是PDF.NET ORM 的强劲对手,但 PDF.NET ORM的查询语言OQL,相对于EF的查询语言Linq,还是有自己独立的特色,OQL比Linq更接近SQL,Linq是VS的语法糖,本质上...System.String>("UserName"); } set { setProperty("UserName", value, 50); } } 因此在获取实体类的属性值的时候...同时,将当前获取到的表字段名,马上赋值给getingPropertyName 变量。这带来了一个问题,属性字段名称必须马上被使用,否则就会出问题。...2.3,统一属性获取事件 除了OQL本身需要“属性获取事件”,OQL关联的OQLCompare对象,OQLOrder对象,都需要处理属性获取事件,比如之前实例化OQLCompare对象:

    2.6K70

    .NET面试题系列 - LINQ to Object

    LINQ to Object将查询语句转换为委托。LINQ to Entity将查询语句转换为表达式树,然后再转换为SQL。...LINQ的好处:强类型,相比SQL语句它更面向对象,对于所有的数据库给出了统一的操作方式。...LINQ的查询就是获得序列,然后通常在中间过程会转换为其他序列,或者和额外的序列连接在一起。...利用ToList强制执行LINQ语句 下面的代码和上面的区别在于我们增加了一个ToList方法。思考会输出什么? ? ToList方法强制执行了所有LINQ语句。...查询操作 假设我们有一个类productinfo,并在主线程中建立了一个数组,其含有若干productinfo的成员。我们在写查询之前,将传入对象Product,其类型为productinfo[]。

    3.4K20

    C# 基础教程 01- 数据类型

    C#为我们内置了几个数据类型供我们使用: 关键词简写 对应的类全称(点击可以查看对应的API) 值范围 说明 bool System.Boolean true、false 该类型只有两个值,用作判断,表示...类型转换 类型转换是指一个类型的数值通过某种手段转换成另一种类型。 类型转换分为两种方式:默认类型转换、强制类型转换。...在强制类型转换之前检测一下是否可以转换为目标类型,如果返回值为 false 依旧要转换的话,那么就会报错。...强制类型转换 强制类型转换分为两种: 在变量前加目标类型强制转换,这个方法与C/C++、Java的方式一致,具体为: C c1 = (C)a;// 代码接上 使用as关键字,as 表示将变量 x 当做类型...使用 Convert.ToXXX(),其中XXX表示转型目标对象。

    87130

    苏州同程旅游学长给我的全面的面试知识库

    编译器将方法的地址存储为入口点,并使用此信息在创建任何对象之前开始执行。Void是类型修饰符,它声明方法或变量不返回任何值。 6、什么是物体? ?...一个对象是一个类的实例,通过它我们可以访问该类的方法。“新建”关键字用于创建对象。在内存中创建对象的类将包含有关该类的方法,变量和行为的信息。...“使用”块用于获取资源并对其进行处理,然后在执行完该块后自动将其丢弃。 11、什么是序列化? 当我们想通过网络传输对象时,我们必须将对象转换为字节流。将对象转换为字节流的过程称为序列化。...值类型将数据值保存在其自己的存储空间内。例子 Int = 30; 引用类型存储要在其中存储值的对象的地址。它是指向另一个存储位置的指针。 String b =“ Hello Guru99 !!”...如果我们强制将密封类指定为基类,则会发生编译时错误。 18、什么是方法重载? 方法重载是在同一个类中创建多个具有相同名称且具有唯一签名的方法。编译时,编译器使用重载解析来确定要调用的特定方法。

    3K20

    走进 LINQ 的世界

    通过LINQ, 您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。   ...通过使用 LINQ 查询,您可以将源序列用作输入,并采用多种方式修改它以创建新的输出序列。您可以通过排序和分组来修改该序列,而不必修改元素本身。但是,LINQ 查询的最强大的功能是能够创建新类型。...= from cust in Customer 2 select new {Name = cust.Name, City = cust.City}; 3.3 将内存中的对象转换为...4.2 转换源数据的查询   下图演示对数据执行简单转换的 LINQ to SQL 查询操作。查询将一个 Customer 对象序列用作输入,并只选择结果中的 Name 属性。...五、LINQ 中的查询语法和方法语法   我们编写的 LINQ 查询语法,在编译代码时,CLR 会将查询语法转换为方法语法。

    4.6K30

    来一点反射和Emit,让ORM的使用极度简化

    找到该表后,在左边的表名称树节点或者右边的查询窗口,鼠标右键菜单上,找到生成实体类的功能,具体过程这里不做演示了,因为这不是本文的主题。...如果我们将实体类先抽象出来一个接口,然后让框架根据该接口,自动继承EntityBase基类和实现接口的属性方法,那该多好啊! PS:这个想法我已经想了好几年了,但总觉得不是很有必要。...:新类型应该override基类型的所以virtual方法 PropertyInfo[] pis = targetType.GetProperties();...有了实体类,然后可以像普通实体类那样来使用ORM查询语言--OQL,不过原来的EntityQuery泛型实体查询类得改进下,才可以支持“动态实体类”的查询。...属性名称跟表字段名称一致,且属性类型跟字段的数据类型相兼容 接口名称为“I”打头的表名称,否则需要使用时候映射一下 如果你不想有这些约束,或者想灵活映射字段和属性,那么还是手写实体类吧,多写一行代码,象本文开头示例的那个实体类一样

    97990
    领券