使用smark的时候,如果要用save的方法进行保存,一定要给DALModel的主键加上【ID】标签,因为save时,依赖于主键。
如果想不依赖于主键进行修改,可以用edit的方法,例:
//(AcRedPacket.iD == bm.RedPacketID & AcRedPacket.getNumber < reddm.PublishedNumber).Edit<AcRedPacket>(a =>
//{
// a.GetNumber = a.GetNumber+1;
// a.UpdateTime = DateTime.Now;
// a.Updater = "system";
//});
smark中使用事务时,如果只写了context.BeginTransaction()或者只写了context.Commit();都不会提交事务
喜欢用SQL语句,不喜欢写BLL之类的,可以用下面的方式调用smark
#region 执行一条sql语句,返回受影响的行
public static int ExecuteSql(string sql)
{
return Smark.Data.DataHelper.Execute(sql);
}
#endregion
#region 获取一个model实体
/// <summary>
/// 获取一个model List实体
/// </summary>
/// <returns></returns>
public static IList<T> GetModeList<T>(string sql) where T : new()
{
using (Smark.Data.IConnectinContext cc = GetSmarkContext(1))
{
return GetModeList<T>(sql, 1);
}
}
/// <summary>
/// 传可变参数
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <param name="dic"></param>
/// <returns></returns>
public static IList<T> GetModelList<T>(string sql,int k,Dictionary<string,object> dic) where T:new()
{
using (Smark.Data.IConnectinContext cc = GetSmarkContext(k))
{
Smark.Data.SQL s = new Smark.Data.SQL(sql);
if (dic != null && dic.Count > 0)
{
foreach (KeyValuePair<string, object> kv in dic)
{
s.Parameter(kv.Key, kv.Value);
}
}
return s.List<T>(cc);
}
}
/// <summary>
/// 获取一个model list 实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="sql"></param>
/// <param name="k">要用的数据源连接字符串</param>
/// <returns></returns>
public static IList<T> GetModeList<T>(string sql, int k) where T : new()
{
using (Smark.Data.IConnectinContext cc = GetSmarkContext(k))
{
Smark.Data.SQL s = new Smark.Data.SQL(sql);
return s.List<T>(cc);
}
}
#endregion