首页 > 代码库 > 实体、实体集及其运用
实体、实体集及其运用
实体
在C#中的写法
在C#中
写法(1):
public class UserInfo { public int UserID { get; set; } }
写法(2):
public class UserinfoEntity { private string userid; ’定义字段名 public string ID ’定义属性项 { get{return userid;} ’取值[Get……End Get,是可省的] set{userid = value;} ’赋值[Set……End Set,是可省的] } }
总结,简单比较,方法(一)与方法(二)等价,很明显,写法(一)更简便。
(二)、VB.NET中写法为:
VB.NET中写法:
Public Class UserEntity Private _userID As String ’定义字段名 Public Property UserID() As String ’定义属性项 Get ’取值[Get……End Get,是可省的] Return _userID End Get Set(value As String) ’赋值[Set……End Set,是可省的] _userID = value End Set End Property End Class
说明:上面写了列举了一个名称为UserEntity的实体,其包括一个属性名为_userID的UserID属性项。在现实运用中,一般都会有多个项,只需定义字段名和对应的属性项(根据取值和赋值的需要)即可。
将一个对象的属性集封装成实体,通过赋值、取值过程,实现一个对象属性值的传递。
如一个学生(是一个对象)有学号studentID(20145113145)、姓名name(王五)、性别sex、(男)班级class(火箭班)、身份证号ID(110120199008122014)等属性,
(三)、用法:
运用
C#、VB.NET中用法相同,取值时直接 = UserEntity.UserID ;赋值时UserEntity.UserID = Value(Value为设定值)。
二、实体集
实体集
实体集,就是具有相同属性项的一类实体的集合。
实体与实体集的关系,就像一名学生与一个班级的关系。
在数据表中,一行,承载一个对象的一套信息(属性集),即是一个实体;多行,则是一组对象的属性集。
只需要传递一个个体信息(表中的一行),用实体就可以满足,但如果要传一个群体的信息(一张表中的多行信息),则考虑用实体集。
(一)实体集的表示有表格和泛型。将表格转化成实体集(vb.net)的方法为:
表示:
DataTable数据类型转化为泛型(实体集)
Imports System.Collections.Generic '引用泛型集合 Imports System.Reflection '引用反射,用它的PropertyInfo ’将实体组装成实体集的方法 '将‘DataTable类型’转化为泛型‘实体集’(‘实体集合’) Public Class genericCollection Public Shared Function converToList(Of T As {New})(ByVal sqlDatatable As DataTable) As List(Of T) Dim myList As New List(Of T) '实例化一个泛型集合 Dim myType As Type '定义一个类型名_变量 myType = GetType(T) '用于放置类型 Dim sqlDatarow As DataRow '查询表的行集 Dim tmpName As String = String.Empty '定义一个临时变量 '遍历DataTable的所有数据行 For Each sqlDatarow In sqlDatatable.Rows Dim myT As New T '实例化类型 '定义一个属性集合 Dim propertys() As PropertyInfo propertys = myT.GetType().GetProperties() '定义一条属性 Dim pr As PropertyInfo '遍历所有属性 For Each pr In propertys tmpName = pr.Name '将属性名赋给变量容器 '检查DataTable是否包含此列,(列名=属性名) If (sqlDatatable.Columns.Contains(tmpName)) Then '判断是否可编辑 If (pr.CanWrite = False) Then Continue For End If '根据属性名获取对象 Dim value As Object = sqlDatarow(tmpName) '判断对象内体是否为空 If (value.ToString <> DBNull.Value.ToString) Then pr.SetValue(myT, value, Nothing) '利用反射设置属性 End If End If Next myList.Add(myT) '添加类型集合 Next Return myList '返回泛型集合 End Function End Class
(二)、实体集可以这样用
可以这样用
在程序中对数据的查询、验证、使用是常有的事,对数据库的访问也是必然的。但数据的访问是件耗时的事,尤其面对大数据,在多用户进行操作与共享的时候,数据访问要是能减少那是关乎效能的事。
实体集合myList as Liss(of T_Entity)
Dim k as Integer = 1 '定义并初始化为1 Dim resumecash As Double '定义变量 myList = select_bll.select(T_Entity) If myList.Count > 0 Then '防止为空 Do While k < myList.Count Or k = myList.Count Dim new_entity As Entity.MainEntity = myList.Item(k - 1) If new_entity.Style = "固定用户" Then '设置条件,指定其中“固定用户”字段,选择符合条件的记录。 cardNum = cardNum + 1 '累加符合条件记录数 fastenCash = fastenCash + carditem.Cash '固定用户销售金 End If resumecash = resumecash + new_en.Consumecash '累加消费金额 k = k + 1 Loop End If
说明:上述代码可以得到的信息有,映射到表中相当于,表的行数(实体数)、指定一实行的指定记录、符合条件的字段数、任一字段的内容。
通过这种形式的信息挖掘,可以减少多数据库的负荷,在多用户进行操作时能减少访问次数,就减少了线程、减轻了排队造成的拥堵。
实体、实体集及其运用