Add Queryable.In

This commit is contained in:
sunkaixuan
2023-09-28 18:33:48 +08:00
parent e183cc607b
commit 93ae2c913f
3 changed files with 16 additions and 1 deletions

View File

@@ -751,7 +751,11 @@ namespace SqlSugar
} }
private void ThrowUpdateByExpressionByMesage(string message) private void ThrowUpdateByExpressionByMesage(string message)
{ {
Check.Exception(UpdateParameterIsNull == true, ErrorMessage.GetThrowMessage(" no support "+ message, "根据对像更新 db.Updateabe(对象) 禁止使用 SetColumns和Where ,你可以使用 "+ message + "。 更新分为2种方式 1.根据表达式更新 2.根据实体或者集合更新 具体用法请查看文档 ")); Check.Exception(UpdateParameterIsNull == true, ErrorMessage.GetThrowMessage(" no support "+ message, "根据表达式更新 db.Updateable<T>()禁止使用 " + message+"。 更新分为2种方式 1.根据表达式更新 2.根据实体或者集合更新 具体用法请查看文档 "));
}
private void ThrowUpdateByObjectByMesage(string message)
{
Check.Exception(UpdateParameterIsNull == false, ErrorMessage.GetThrowMessage(" no support " + message, "根据对象更新 db.Updateable(对象)禁止使用 " + message + "。 更新分为2种方式 1.根据表达式更新 2.根据实体或者集合更新 具体用法请查看文档 "));
} }
} }
} }

View File

@@ -902,6 +902,16 @@ namespace SqlSugar
result.Where(sql.Key, sql.Value); result.Where(sql.Key, sql.Value);
return result; return result;
} }
public IUpdateable<T> In(object[] ids)
{
ThrowUpdateByObjectByMesage(" In(object[] ids) ");
List<IConditionalModel> conditionalModels = new List<IConditionalModel>();
var column = this.EntityInfo.Columns.FirstOrDefault(it => it.IsPrimarykey);
Check.ExceptionEasy(column == null, "In need primary key", "In需要实体有主键");
conditionalModels.Add(new ConditionalModel() { FieldName= column.DbColumnName, ConditionalType= ConditionalType.In,FieldValue=string.Join(",",ids),CSharpTypeName=column.UnderType?.Name } );
return this.Where(conditionalModels);
}
#endregion #endregion
} }

View File

@@ -119,6 +119,7 @@ namespace SqlSugar
IUpdateable<T> Clone(); IUpdateable<T> Clone();
IUpdateable<T,T2> InnerJoin<T2>(Expression<Func<T,T2,bool>> joinExpress); IUpdateable<T,T2> InnerJoin<T2>(Expression<Func<T,T2,bool>> joinExpress);
UpdateablePage<T> PageSize(int pageSize); UpdateablePage<T> PageSize(int pageSize);
IUpdateable<T> In(object[] ids);
} }
public interface IUpdateable<T, T2> public interface IUpdateable<T, T2>
{ {