asp.net mvc 操作数据库命令解析
请大神帮忙翻译下面方法的意思,或者下面语句使用了那些技术:泛型、linq 、lambda
/// <typeparam name="T"> Judge </typeparam>
/// <param name="sqlConnection"></param>
/// <param name="t"></param>
/// <param name="sqlTransation">回滚</param>
/// <returns></returns>
// public static List<T> Search<T> 类似于 public static bolean ShiFouCunZaiID(){}
public static List<T> Search<T>(this SqlConnection sqlConnection, T t,
SqlTransaction sqlTransation = null) where T : BaseModel
{
t.IsValid = true; //功能检查对象变量是否已经实例化
return sqlConnection.Query<T>(
// string.Format(String, Object, Object) 将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项
string.Format(
"select * from {0} where 1=1 {1}",
typeof(T).Name.ToLower(),//获取T代表的table
//string.Join var val = new[] {"1", "2", "3'}; result = string.Join("$", val); result 将会变成 "1$2$3"
string.Join(" ", GetFileList(t).Select(s => " and [" + s + "]=@" + s))
), t, transaction: sqlTransation).ToList();
}
问题:
1.
public List<Judge> Search(Judge t,SqlTransaction sqltran=null)
{
return SqlConnections.GetOpenConnection().Search<Judge>(t,sqltran);
}
Search<Judge>(t,sqltran) 中只有两个参数为何 上面的方法有三个参数;
2. public static List<T> Search<T>(this SqlConnection sqlConnection, T t,
SqlTransaction sqlTransation = null) where T : BaseModel
中的where T : BaseModel 怎么解释
3. return sqlConnection.Query<T>(a,b,c)写法表达什么意思;
4.GetFileList(t).Select 这个写法表达什么意思