This commit is contained in:
sunkaixuan 2017-05-23 07:20:58 +08:00
parent ce4b68567b
commit 4d8cb6f649
5 changed files with 45 additions and 15 deletions

View File

@ -19,9 +19,21 @@ namespace OrmTest.UnitTest
public void Init() {
var db = GetInstance();
db.IgnoreColumns.Add("1", "1");
var s1= db.Queryable<Student>().Where(it=>it.Id==1).ToSql();
var t1= db.Queryable<Student>().Where(it=>it.Id==1).ToSql();
base.Check("SELECT [ID],[SchoolId],[Name],[CreateTime] FROM [STudent] WHERE ( [ID] = @Id0 ) ", null, t1.Key, null,"Mapping t1 error");
db.MappingColumns.Add("Id", "id", "School");
var t2 = db.Queryable<Student, School>((st, sc) => new object[] {
JoinType.Left,st.SchoolId==sc.Id
})
.Where(st => st.Id == 1)
.Where<School>(sc => sc.Id == 1)
.Where<School, Student>((sc, st) => sc.Id == st.Id)
.GroupBy(st => st.Id)
.GroupBy<School>(sc => sc.Id).OrderBy<Student>(st => st.Id,OrderByType.Asc)
.Select<Student,School,dynamic>((st,sc)=> new { stid=st.Id,scid=sc.Id}).ToSql();
base.Check(@"SELECT [st].[ID] AS [stid] , [sc].[id] AS [scid] FROM [STudent] st Left JOIN School sc ON ( [st].[SchoolId] =[sc].[id]) WHERE ( [st].[ID] = @Id0 ) AND ( [sc].[id] = @Id1 ) AND ( [sc].[id] = [st].[ID] )GROUP BY [st].[ID],[sc].[id]ORDER BY [st].[ID] ASC ",
null, t2.Key, null, " Mapping t2 error");
var x2 = GetInstance();
}

View File

@ -289,7 +289,7 @@ namespace SqlSugar
{
pre = Builder.GetTranslationColumnName(TableShortName) + ".";
}
reval = string.Join(",", this.Context.EntityProvider.GetEntityInfo(this.EntityType).Columns.Where(it=>!it.IsIgnore).Select(it => pre + Builder.GetTranslationColumnName(it.PropertyName)));
reval = string.Join(",", this.Context.EntityProvider.GetEntityInfo(this.EntityType).Columns.Where(it=>!it.IsIgnore).Select(it => pre + Builder.GetTranslationColumnName(it.EnitytName,it.PropertyName)));
}
else
{

View File

@ -20,11 +20,13 @@ namespace SqlSugar
{
get
{
return this.SqlBuilder.QueryBuilder;
return this.SqlBuilder.QueryBuilder;
}
}
public EntityInfo EntityInfo {
get {
public EntityInfo EntityInfo
{
get
{
return this.Context.EntityProvider.GetEntityInfo<T>();
}
}
@ -110,7 +112,8 @@ namespace SqlSugar
return this;
}
public ISugarQueryable<T> Having(Expression<Func<T, bool>> expression) {
public ISugarQueryable<T> Having(Expression<Func<T, bool>> expression)
{
this._Having(expression);
return this;
}
@ -204,7 +207,7 @@ namespace SqlSugar
Where("1=2 ");
return this;
}
var pks = GetPrimaryKeys().Select(it=> SqlBuilder.GetTranslationTableName(it)).ToList();
var pks = GetPrimaryKeys().Select(it => SqlBuilder.GetTranslationTableName(it)).ToList();
Check.Exception(pks == null || pks.Count != 1, "Queryable.In(params object[] pkValues): Only one primary key");
string filed = pks.FirstOrDefault();
string shortName = QueryBuilder.TableShortName == null ? null : (QueryBuilder.TableShortName + ".");
@ -285,10 +288,15 @@ namespace SqlSugar
return this;
}
public ISugarQueryable<T> OrderBy<T2>(Expression<Func<T, T2, object>> expression, OrderByType type = OrderByType.Asc)
public ISugarQueryable<T2> OrderBy<T2>(Expression<Func<T2, object>> expression, OrderByType type = OrderByType.Asc)
{
this._OrderBy(expression, type);
return this;
var reval = InstanceFactory.GetQueryable<T2>(this.Context.CurrentConnectionConfig);
reval.Context = this.Context;
reval.SqlBuilder = this.SqlBuilder;
reval.SqlBuilder.QueryBuilder.Parameters = QueryBuilder.Parameters;
reval.SqlBuilder.QueryBuilder.SelectValue = expression;
return reval;
}
public ISugarQueryable<T> GroupBy(Expression<Func<T, object>> expression)
@ -296,7 +304,16 @@ namespace SqlSugar
_GroupBy(expression);
return this;
}
public ISugarQueryable<T2> GroupBy<T2>(Expression<Func<T2, object>> expression)
{
_GroupBy(expression);
var reval = InstanceFactory.GetQueryable<T2>(this.Context.CurrentConnectionConfig);
reval.Context = this.Context;
reval.SqlBuilder = this.SqlBuilder;
reval.SqlBuilder.QueryBuilder.Parameters = QueryBuilder.Parameters;
reval.SqlBuilder.QueryBuilder.SelectValue = expression;
return reval;
}
public ISugarQueryable<T> GroupBy(string groupFileds)
{
var croupByValue = QueryBuilder.GroupByValue;
@ -607,7 +624,7 @@ namespace SqlSugar
var tType = typeof(TResult);
if (tType.IsAnonymousType() || isComplexModel)
{
result= this.Context.RewritableMethods.DataReaderToDynamicList<TResult>(dataReader);
result = this.Context.RewritableMethods.DataReaderToDynamicList<TResult>(dataReader);
}
else
{

View File

@ -27,7 +27,7 @@ namespace SqlSugar
{
public void Add(string propertyName, string EntityName)
{
this.RemoveAll(it => it.EntityPropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
this.RemoveAll(it =>it.EntityName==EntityName&&it.EntityPropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
this.Add(new IgnoreComumn() { EntityPropertyName = propertyName, EntityName = EntityName });
}
@ -41,7 +41,7 @@ namespace SqlSugar
{
public void Add(string propertyName, string dbColumnName, string entityName)
{
this.RemoveAll(it => it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
this.RemoveAll(it =>it.EntityName==entityName &&it.PropertyName.Equals(propertyName, StringComparison.CurrentCultureIgnoreCase));
this.Add(new MappingColumn() { PropertyName = propertyName, DbColumnName = dbColumnName, EntityName = entityName });
}
public new void Clear()

View File

@ -48,9 +48,10 @@ namespace SqlSugar
ISugarQueryable<T> OrderBy(string orderFileds);
ISugarQueryable<T> OrderBy(Expression<Func<T, object>> expression, OrderByType type = OrderByType.Asc);
ISugarQueryable<T> OrderBy<T2>(Expression<Func<T, T2, object>> expression, OrderByType type = OrderByType.Asc);
ISugarQueryable<T2> OrderBy<T2>(Expression<Func<T2, object>> expression, OrderByType type = OrderByType.Asc);
ISugarQueryable<T> GroupBy(Expression<Func<T, object>> expression);
ISugarQueryable<T2> GroupBy<T2>(Expression<Func<T2, object>> expression);
ISugarQueryable<T> GroupBy(string groupFileds);
ISugarQueryable<T> Skip(int index);