This commit is contained in:
sunkaixuan
2017-06-14 01:08:12 +08:00
parent 1fd736566f
commit 99ab3bc39e
2 changed files with 16 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ namespace OrmTest.UnitTest
{
//Native methods
ExtendContainsArray();
ConvetToString();
ExtendToString();
ExtendSubstring();
@@ -416,6 +417,16 @@ namespace OrmTest.UnitTest
}, "Contains error");
}
private void ExtendContainsArray() {
string[] array = new string[] { "1", "2" };
Expression<Func<Student, bool>> exp = it => array.Contains(it.Name);
SqlServerExpressionContext expContext = new SqlServerExpressionContext();
expContext.Resolve(exp, ResolveExpressType.WhereSingle);
var value = expContext.Result.GetString();
var pars = expContext.Parameters;
base.Check(value, null, " ([Name] IN ('1','2')) ", null, "Contains2 error");
}
private void ContainsArray()
{
string[] array = new string[] { "1", "2" };

View File

@@ -15,6 +15,10 @@ namespace SqlSugar
var isLeft = parameter.IsLeft;
string methodName = express.Method.Name;
var isValidNativeMethod = MethodMapping.ContainsKey(methodName)&&express.Method.DeclaringType.Namespace==("System");
if (!isValidNativeMethod&&express.Method.DeclaringType.Namespace== "System.Linq"&&methodName=="Contains") {
methodName = "ContainsArray";
isValidNativeMethod = true;
}
if (isValidNativeMethod)
{
NativeExtensionMethod(parameter, express, isLeft, MethodMapping[methodName]);
@@ -240,6 +244,7 @@ namespace SqlSugar
{ "Length","Length"},
{ "Replace","Replace"},
{ "Contains","Contains"},
{ "ContainsArray","ContainsArray"},
{ "EndsWith","EndsWith"},
{ "StartsWith","StartsWith"},
{ "HasValue","HasValue"},