This commit is contained in:
sunkaixuan 2017-04-24 00:56:18 +08:00
parent d5492af918
commit f07e357ca8
2 changed files with 11 additions and 1 deletions

View File

@ -38,6 +38,7 @@ namespace OrmTest.UnitTest
#region dr ot entity
db.IgnoreComumns.Add("TestId", "Student");
var d5 = db.Queryable<Student>().ToList();
var dr3 = db.Queryable<Student>().Select(it => new ViewModelStudent2 { Name=it.Name,Student=it}).ToList();
var dr0 = db.Queryable<Student>().Select(it => new { id=it.Id,w=new { x=it } }).ToList();
var dr1 = db.Queryable<Student>().Select(it => new { newid = it.Id }).ToList();

View File

@ -18,6 +18,7 @@ namespace SqlSugar
private SqlSugarClient Context = null;
private IDataReaderEntityBuilder<T> DynamicBuilder;
private IDataRecord DataRecord;
private List<string> ReaderKeys { get; set; }
private IDataReaderEntityBuilder()
{
}
@ -27,6 +28,7 @@ namespace SqlSugar
this.Context = context;
this.DataRecord = dataRecord;
this.DynamicBuilder = new IDataReaderEntityBuilder<T>();
this.ReaderKeys = new List<string>();
}
#region fields
private static readonly MethodInfo isDBNullMethod = typeof(IDataRecord).GetMethod("IsDBNull", new Type[] { typeof(int) });
@ -69,6 +71,10 @@ namespace SqlSugar
public IDataReaderEntityBuilder<T> CreateBuilder(Type type)
{
for (int i = 0; i < this.DataRecord.FieldCount; i++)
{
this.ReaderKeys.Add(this.DataRecord.GetName(i));
}
DynamicMethod method = new DynamicMethod("SqlSugarEntity", type,
new Type[] { typeof(IDataRecord) }, type, true);
ILGenerator generator = method.GetILGenerator();
@ -101,7 +107,10 @@ namespace SqlSugar
}
else
{
BindField(generator, result, propertyInfo, fileName);
if (this.ReaderKeys.Any(it => it.Equals(fileName, StringComparison.CurrentCultureIgnoreCase)))
{
BindField(generator, result, propertyInfo, fileName);
}
}
}
}