110,533
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// ORM业务逻辑测试
/// </summary>
public class TestBLL : BaseBLL
{
/// <summary>
/// 访问数据库A的Common_LogLoginDao表
/// </summary>
public Common_LogLoginDao1 Common_LogLoginDao1 { get; set; }
/// <summary>
/// 访问数据库B的Common_LogLoginDao表
/// </summary>
public Common_LogLoginDao2 Common_LogLoginDao2 { get; set; }
/// <summary>
/// 访问数据库A的UserInfo表
/// </summary>
public UserInfoDao UserInfoDao { get; set; }
/// <summary>
/// 查询测试
/// </summary>
[BusinessMethod(AopTransactionScopeOption.None, AopLogOption.Required, "查询测试")]
public void TestQuery()
{
Common_LogLoginMap map1 = Common_LogLoginDao1.EntityMaping;
UserInfoMap map2 = UserInfoDao.EntityMaping;
//含有Where表达式的普通查询
DataTable dt2 = UserInfoDao.
Query(map2).
Where(map2.UserID == 10000 | map2.UserID == map2.UserID).
Select(map2.UserID, map2.UserAccount, map2.CreateDate, map2.EffectiveTime).
OrderByDesc(map2.UserID).ToList();
int Count = 0;
//含有Where表达式的分页查询
DataTable dt3 = UserInfoDao.
Query(map1, map2).
Where(map1.LoginAccount == map2.UserAccount & map1.ID >= 2200).
Select(map1.ID, map2.UserID, map2.UserAccount, map2.CreateDate, map2.EffectiveTime).
OrderByAsc(map2.UserID).ToList(10, 1, out Count);
//含有Where表达式的分页查询
int Count1 = 0;
DataTable dt4 = UserInfoDao.
Query(map1).
Select(map1.ID, map1.LoginTime, map1.LoginIP, map1.LoginAccount, map1.IsSuccess).
OrderByAsc(map1.ID).ToList(10, 1, out Count1);
}
/// <summary>
/// 分页测试
/// </summary>
[BusinessMethod(AopTransactionScopeOption.DataBase, AopLogOption.Required, "分页测试")]
public object TestPage(int pageSize, int pageIndex, int ID, out int Count)
{
Common_LogLoginMap map1 = Common_LogLoginDao1.EntityMaping;
UserInfoMap map2 = UserInfoDao.EntityMaping;
List<Common_LogLogin> list = Common_LogLoginDao1.GetList(map1.ID > 0);
//分页查询
DataTable dt3 = UserInfoDao.
Query(map1, map2).
Where(map1.LoginAccount == map2.UserAccount & map1.ID >= ID).
Select(map1.ID, map2.UserID, map2.UserAccount, map2.CreateDate, map2.EffectiveTime).
OrderByAsc(map1.ID).OrderByAsc(map2.UserID).ToList(pageSize, pageIndex, out Count);
//分组查询
DataTable dtGroupBy = UserInfoDao.
Query(map1, map2).
Where(map1.LoginAccount == map2.UserAccount).
Select(map1.ID.Avg(), map1.LoginAccount.Count(), map1.LoginIP).
GroupBy(map1.LoginIP).ToList();
Common_LogLoginDao1.Delete(map1.ID > 0);
return dt3;
}
/// <summary>
/// 分布式事物测试
/// </summary>
[BusinessMethod(AopTransactionScopeOption.Distributed, AopLogOption.Required, "分布式事物测试")]
public bool TestTransaction()
{
Common_LogLogin model = new Common_LogLogin();
model.LoginAccount = "LoginAccount";
model.IsSuccess = true;
model.LoginIP = "LoginIP";
model.LoginTime = DateTime.Now;
model.Remark = "Remark";
//插入数据库A
Common_LogLoginDao1.Add(model);//成功
model.LoginIP = "LoginIPLP";
//插入数据库B
Common_LogLoginDao2.Add(model);//失败
return true;
}
}
//Base
/// <summary>
/// 数据库A的数据访问类
/// </summary>
public class BaseDao1<Entity, EntityMap> : TemplateDao<Entity, EntityMap>
where Entity : class
where EntityMap : class
{
/// <summary>
/// 获取连接字符串
/// </summary>
public override string ConnectionStringKey
{
get { return "ConnectionString1"; }
}
}
/// <summary>
/// 数据库B的数据访问类
/// </summary>
public class BaseDao2<Entity, EntityMap> : TemplateDao<Entity, EntityMap>
where Entity : class
where EntityMap : class
{
/// <summary>
/// 获取连接字符串
/// </summary>
public override string ConnectionStringKey
{
get { return "ConnectionString2"; }
}
}
/// <summary>
/// 访问数据库A的Common_LogLoginDao表
/// </summary>
public class Common_LogLoginDao1 : BaseDao1<Common_LogLogin, Common_LogLoginMap>
{
}
/// <summary>
/// 访问数据库B的Common_LogLoginDao表
/// </summary>
public class Common_LogLoginDao2 : BaseDao2<Common_LogLogin, Common_LogLoginMap>
{
}
/// <summary>
/// 实体对象
/// </summary>
public class Common_LogLogin : BaseEntity
{
/// <summary>
/// 编号
/// </summary>
public int ID
{
get { return (int)this["ID"]; }
set { this["ID"] = value; }
}
/// <summary>
/// 登录帐号
/// </summary>
public string LoginAccount
{
get { return (string)this["LoginAccount"]; }
set { this["LoginAccount"] = value; }
}
/// <summary>
/// 登录时间
/// </summary>
public Nullable<DateTime> LoginTime
{
get { return (Nullable<DateTime>)this["LoginTime"]; }
set { this["LoginTime"] = value; }
}
/// <summary>
/// 登录IP
/// </summary>
public string LoginIP
{
get { return (string)this["LoginIP"]; }
set { this["LoginIP"] = value; }
}
/// <summary>
/// 是否登录成功
/// </summary>
public Nullable<bool> IsSuccess
{
get { return (Nullable<bool>)this["IsSuccess"]; }
set { this["IsSuccess"] = value; }
}
/// <summary>
/// 备注
/// </summary>
public string Remark
{
get { return (string)this["Remark"]; }
set { this["Remark"] = value; }
}
}
/// <summary>
/// 实体映射
/// </summary>
public class Common_LogLoginMap : BaseEntityMap
{
public Common_LogLoginMap()
{
//表名
this.TableName = "Common_LogLogin";
//字段属性
this.AddProperty("ID", default(Int16), 100, DbType.Int16, true, true, AutoSync.OnInsert);
this.AddProperty("LoginAccount", default(string), 100, DbType.String, false, false, AutoSync.Default);
this.AddProperty("LoginTime", default(DateTime), 100, DbType.DateTime, false, false, AutoSync.Default);
this.AddProperty("LoginIP", default(string), 100, DbType.String, false, false, AutoSync.Default);
this.AddProperty("IsSuccess", default(bool), 100, DbType.Boolean, false, false, AutoSync.Default);
this.AddProperty("Remark", default(string), 100, DbType.String, false, false, AutoSync.Default);
}
/// <summary>
/// 登录帐号
/// </summary>
public Expression LoginAccount { get { return this["LoginAccount"]; } }
/// <summary>
/// 登录时间
/// </summary>
public Expression LoginTime { get { return this["LoginTime"]; } }
/// <summary>
/// 登录IP
/// </summary>
public Expression LoginIP { get { return this["LoginIP"]; } }
/// <summary>
/// 是否登录成功
/// </summary>
public Expression IsSuccess { get { return this["IsSuccess"]; } }
/// <summary>
/// 编号
/// </summary>
public Expression ID { get { return this["ID"]; } }
/// <summary>
/// 备注信息
/// </summary>
public Expression Remark { get { return this["Remark"]; } }
}