U9 实体操作API参考手册

示例代码: UFSoft.UBF.Business.EntityDataQuery query = new UFSoft.UBF.Business.EntityDataQuery("Association.Yel_Ass1to1_A"); query.Select("ID", "Code", "Yel_Ass1to1_B.Name", "Yel_OtherAss_A.ModifiedOn"); query.Parameters.Add(new OqlParam(1)); query.Parameters.Add(new OqlParam("TestFindByPageUsingDataReader")); //取第二页,页面大小为2条记录 IDataReader dr = query.FindDataReaderByPage(1, 2, " ID > @ID and Name = @mmm order by ID"); //取第一页 dr = query.FindDataReaderByPage(0, 2, " ID > @ID and Name = @mmm order by ID"); //取最后一页 dr = query.FindDataReaderByPage(-1, 3, " ID > @ID and Name = @mmm order by ID"); //取全部记录 dr = query.FindDataReaderByPage(2, -1, " ID > @ID and Name = @mmm order by ID"); public DataSet FindDataSet()查询所有数据,返回 DataSet public DataSet FindDataSet(string condition)查询符合条件的数据,返回DataSet参数:condition 为oql表达式,是这次查询的条件,可以是全oql,也可以是仅仅是条件部分oql public DataSet FindDataSetByPage(Int64 pageIndex, int pageSize, string oql)分页查询,返回DataSet参数:pageIndex 页索引,注意如果索引是从 0 页起,如果索引为-1,表示取最后一页 pageSize 页面大小,如果页面大小为-1,表示取全部数据 oql 查询 oql 语句

public object FindValue()无条件单值查询,返回第一行,第一列的单值public object FindValue(string condition)带条件的单值查询参数: condition 条件 oql 表达式,也可以是全 oql 表达式 示例代码: EntityDataQuery q = new EntityDataQuery("Association.Yel_1to1Self"); object maxValue = q.FindValue("select Max(ID) where id > 111"); object count = q.FindValue("select sum(ID) where id > 111");public bool IsExists(string oql)判断是否存在符合条件的记录参数: oql 条件oql表达式示例代码: EntityDataQuery q1 = Yel_Ass1to1_A.Finder.CreateDataQuery(); q1.Parameters.Add(new OqlParam(1234567890)); q1.Parameters.Add(new OqlParam("forTestaa")); q1.Select("ID"); Assert.IsFalse(q1.IsExists("ID=@aaa and Name=@bbb")); public void Select(params string[] selectedData)定义查询的select项参数:selectedData select 项列表

public Int64 UniqueFind(string oql)返回满足给出 OQL 条件的记录数,以及其中第一个 Entity 对应的 ID 参数: oql 条件 oql 返回: Int64 如果返回 Int64.MinValue,表示无记录,如果返回 Int64.MaxValue 表示多条记录,如果只有一条记录,则返回该记录的 ID EntityQuery UFSoft.UBF.Business.dll 下的 EntityQuery,主要返回单个实体类或实体集合,名空间为UFSoft.UBF.Business方法public IList FindAll()查询所有实体记录返回全部的实体对象集合public IList FindAll(string condition)查询满足条件的实体集合参数:Condition 条件 oql 返回 满足条件的实体对象集合注意:参数必须为条件部分oql,不能传全oql表达式public Entity FindByID(object key)通过id查询实体对象参数: key 实体id

返回 Entity 实体对象public IList FindByPage(Int64 pageIndex, int pageSize, string condition)分页查询实体对象集合参数:pageIndex 页索引,注意如果索引是从 0 页起,如果索引为-1,表示取最后一页 pageSize 页面大小,如果页面大小为-1,表示取全部数据 condition 查询 oql 语句 EntityViewQueryUFSoft.UBF.Business.dll 下的 EntityViewQuery,主要是对临时表的操作,用于复杂查询,如报表查询,名空间为UFSoft.UBF.Business 方法public ObjectQuery CreateQuery(string oql) 根据 oql 构造 ObjectQuery 示例: ObjectQuery oq = q.CreateQuery("select id from Association::Yel_Ass1to1_A where id = ‘aaa’ ");public ObjectQuery CreateQuery(string oql, GlobalizationContextglobalContext) 根据oql构造ObjectQuery,带多语参数参数: oql:查询oql,注意此处为完整oql globalContext:多语参数 GlobalizationOption.Auto 当前语种 GlobalizationOption.Manual 全部语种 GlobalizationOption.Non 不 join 多语表 也可以构造一个或多个特定的语种,如new GlobalizationContext("zh-CN", "en-US")

示例: //当前上下文的语种ObjectQuery oq = q.CreateQuery("select id from Association::Yel_Ass1to1_A where Code = ‘aaa’",GlobalizationOption.Auto); //全语种 ObjectQuery oq = q.CreateQuery("select id from Association::Yel_Ass1to1_A where Code = ‘aaa’ ", GlobalizationOption.Manual); //只取英文 ObjectQuery oq = q.CreateQuery("select id from Association::Yel_Ass1to1_A where Code = ‘aaa’ ",new GlobalizationContext("en-US")); public ObjectQuery CreateUnion(string orderBy, params string[] selects) 构造union 示例:ObjectQuery query = new EntityViewQuery().CreateUnion( "order by Name", "select Name,Code from Association::Yel_Ass1to1_A", "select Name,Code from Association::Yel_Ass1to1_B" ); public void DefineTempCollection(string TempTableName, paramsUFSoft.UBF.View.Query.Column[] cols) 通过用户自定义的 sql 产成生临时表 示例:EntityViewQuery q = new EntityViewQuery(); q.DefineTempCollection("aaa", new Column("ID", "bigint"), new Column("Text", "nvarchar")); public void DropTempCollection(string viewName) drop临时表示例:EntityViewQuery q = new EntityViewQuery(); //create 临时表 aaaView q.ExecuteNonQuery("aaaView", q.CreateQuery("select * from

Association::Yel_Ass1to1_A")); //drop 临时表 aaaView q.DropTempCollection("aaaView");public int ExecuteAppendNonQuery(string TempVariable,ObjectQueryinsertQuery,params UFSoft.UBF.PL.OqlParam[] oqlParameters) 往临时表插入记录示例:q.ExecuteAppendNonQuery("aaaView1", q.CreateQuery("select * from Association::Yel_Ass1to1_A")); public DataSet ExecuteDataSet(ObjectQuery query, paramsUFSoft.UBF.PL.OqlParam[] oqlParameters) 执行查询,返回 DataSet 示例:q.ExecuteDataSet(q.CreateQuery("select * from aaaView")) public DataSet ExecuteDataSet(string TempVariable, ObjectQuery query, params UFSoft.UBF.PL.OqlParam[] oqlParameters) 执行查询,返回 DataSet 参数: TempVariable 临时表名 Query ObjectQueryoqlParameters 参数,可为空示例EntityViewQuery q = new EntityViewQuery(); DataSet ds0 = q.ExecuteDataSet("aaaView", q.CreateQuery("select * from Association::Yel_Ass1to1_A")); public int ExecuteNonQuery(string TempVariable, ObjectQuery query, params UFSoft.UBF.PL.OqlParam[] oqlParameters) 通过query建立临时表

示例: //建立一个名字为aaaView的临时表q.ExecuteNonQuery("aaaView", q.CreateQuery("select * from Association::Yel_Ass1to1_A")); public IDataReader ExecuteReader(ObjectQuery query, paramsUFSoft.UBF.PL.OqlParam[] oqlParameters) 执行查询,返回 IDataReader public IDataReader ExecuteReader(string TempVariable, ObjectQuery query, params UFSoft.UBF.PL.OqlParam[] oqlParameters) 执行查询,返回 IDataReader public void ExecuteTempCollection(string oql, paramsUFSoft.UBF.PL.OqlParam[] oqlParameters) 根据 oql 更新/删除临时表 示例: EntityViewQuery q = new EntityViewQuery();q.ExecuteTempCollection("update aaaView set Name = 'aaa'"); q.ExecuteTempCollection("truncate table aaaView ");ExtendHelpAPI UFSoft.UBF.Business.dll 下的 EntityViewQuery,主要是对临时表的操作,用于复杂查询,如报表查询,名空间为UFSoft.UBF.Business.Tool

方法public static IList CheckExistRefObj(Entity po) 检查当前实体是否被别人引用,返回第一个被同一类对象引用集合 示例: Yel_A_1ToNCaseNoAction objA1; Yel_B_1ToNCaseNoAction objB1; { //一对多,不可删,如果B中引用了A,则两个都不能删,否则,删A,不处理B using (ISession session = Session.Open()) { objA1 = Yel_A_1ToNCaseNoAction.Create(); objB1 = Yel_B_1ToNCaseNoAction.Create(); objA1.Yel_B_1ToNCaseNoAction.Add(objB1); session.Commit(); } IList list = ExtendHelpAPI.CheckExistRefObj(Yel_A_1ToNCaseNoAction.Finder.Find("ID = '" + objA1.ID + "'")); Assert.IsNotNull(list); Assert.AreEqual(1, list.Count); 。。。。 }public static void CheckExistsByIDandVersion(List<EntityWithVersion> list) 根据 id,version 判断对象是否存在 参数: list EntityWithVersion 的集合,EntityWithVersion 是一个辅助类,名空间是UFSoft.UBF.Business.Tool,主要带 3 个 get/set 属性:ID,EntityType 和 SysVersion示例:[Test] public void TestCheckExistsByIDandVersion() { using (ISession s =Session.Open()){ Yel_1to1Self a1 = Yel_1to1Self.Create(); Yel_Ass1toN_A a2 = Yel_Ass1toN_A.Create(); Yel_Ass1toN_A a3 = Yel_Ass1toN_A.Create(); s.Commit();

//新建的对象版本号是0,下面集合中,版本号大于零的都因该找不到 List<EntityWithVersion> list = new List<EntityWithVersion>(); list.Add(new EntityWithVersion(a1.Key, 0)); list.Add(new EntityWithVersion(a1.Key, 1)); list.Add(new EntityWithVersion(a2.Key, 0)); list.Add(new EntityWithVersion(a3.Key, 0)); list.Add(new EntityWithVersion(a3.Key, 2)); UFSoft.UBF.Business.Tool.ExtendHelpAPI.CheckExistsByIDandVersion(list); Assert.IsTrue(list[0].IsExists); Assert.IsFalse(list[1].IsExists); Assert.IsTrue(list[2].IsExists); Assert.IsTrue(list[3].IsExists); Assert.IsFalse(list[4].IsExists); } }public static string GetEntityResource(string entityFullName) 取实体名的资源示例:UFSoft.UBF.Business.Tool.ExtendHelpAPI.GetEntityResource(BE_FullName)public static string GetAttrResource(string entityFullName, string attrName) 取实体属性资源的辅助方法示例:UFSoft.UBF.Business.Tool.ExtendHelpAPI.GetAttrResource(BE_FullName, attrName) public static string GetEnumResource(string EnumFullName, stringenumItemName) 取枚举项资源参数:EnumFullName 枚举全名 enumItemName 枚举项名

示例:UFSoft.UBF.Business.Tool.ExtendHelpAPI.GetEnumResource("UFIDA.U9.CBO.SCM.Item.ElementEnum", "1") public static string GetNameForEnumValue(string EnumFullName, int enumValue) 根据枚举项的value区枚举项资源参数:EnumFullName 枚举全名 enumItemName 枚举项的 value 示例: UFSoft.UBF.Business.Tool.ExtendHelpAPI.GetNameForEnumValue("UFIDA.U9.CBO.SCM.Item.ElementEnum", 1) public static string GetPropertyResource(string propertyFullName, stringattrName) 取属性类型的资源 示例: UFSoft.UBF.Business.Tool.ExtendHelpAPI.GetPropertyResource(Yel_PropertyA_TypeFullName, attrName) public static long GetNewID() 产生一个实体的新ID

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值