ModelContext support inheritance

This commit is contained in:
sunkaixuan
2018-05-03 16:22:18 +08:00
parent 2814fd60f8
commit 67358ab9ab
3 changed files with 13 additions and 1 deletions

View File

@@ -12,6 +12,7 @@ namespace OrmTest.Demo
public static void Init()
{
var db = GetInstance();
db.Insertable(new CMStudent() { SchoolId = 1, Name = "xx1" }).ExecuteCommand();
var students = db.Queryable<CMStudent>().ToList();
if (students != null)
{

View File

@@ -1180,7 +1180,7 @@ namespace SqlSugar
{
if (result.HasValue())
{
if (entityType.GetTypeInfo().BaseType.HasValue() && entityType.GetTypeInfo().BaseType == UtilConstants.ModelType)
if (UtilMethods.GetRootBaseType(entityType).HasValue() &&UtilMethods.GetRootBaseType(entityType) == UtilConstants.ModelType)
{
foreach (var item in result)
{

View File

@@ -17,6 +17,17 @@ namespace SqlSugar
return type==null ? oldType : type;
}
internal static Type GetRootBaseType(Type entityType)
{
var baseType = entityType.BaseType;
while (baseType != null && baseType.BaseType != UtilConstants.ObjType)
{
baseType = baseType.BaseType;
}
return baseType;
}
internal static Type GetUnderType(PropertyInfo propertyInfo, ref bool isNullable)
{
Type unType = Nullable.GetUnderlyingType(propertyInfo.PropertyType);