DotNetNext / SqlSugar

.Net aot ORM Fastest ORM Simple Easy VB.NET Sqlite orm Oracle ORM Mysql Orm 虚谷数据库 postgresql ORm SqlServer oRm 达梦 ORM 人大金仓 ORM 神通ORM C# ORM , C# ORM .NET ORM NET5 ORM .NET6 ORM ClickHouse orm QuestDb ,TDengine ORM,OceanBase orm,GaussDB orm ,Tidb orm Object/Relational Mapping

Home Page:https://www.donet5.com/Home/Doc

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

.SelectAll()获取日期出错

Tinyipfaan opened this issue · comments

var listDto = await GetSugarContext().Queryable
            <LantekPart, LantekMaterial>
            ((it, material)
            => new JoinQueryInfos(
                JoinType.Left, it.DisMatRef == material.MatRef
            ))
            .Where(it => prdRefs.Contains(it.PrdRef))
            .Select((it, material)
                => new LantekPartDto
                {
                    // part.all
                    RecID = it.RecID.SelectAll(),
                    ImageBmp = it.Image,

                    // material
                    Density = material.Density,
                })
            .ToListAsync();

企业微信截图_16708215718180

企业微信截图_16708216825009

Dto字段density拿到了,entity字段有的没拿到

企业微信截图_16708217378429

数据库中记录分别是一个时间和空string

LantekPart, LantekMaterial两个表都有RecID

public DateTime DisPriceDate { get; set; }
public string DisProfileRef { get; set; }
[Column("DIS_PriceDate")]
    [Comment("Last price modification")]
    public DateTime DisPriceDate { get; set; }

[Column("DIS_ProfileRef")]
    [Comment("Profile")]
    public string DisProfileRef { get; set; }

这种就取到了
企业微信截图_1670822023437

你底层可能做值的判断了,entity的字段在数据库中都是非Null,这个改不了。

提供完整加测试数据用例 https://www.donet5.com/Home/Doc?typeId=2366 按这个模版提供

DTO如果字段名字不一样是查询不到的,要一模一样

我看你的表名都有下划线

//自动返回DTO : 请升级 5.1.3.35  
var listDto= db.Queryable<Student>()
            .Select(it,b)=>new StudentDto()
             {
                  bname=b.name //手动指定一列在自动映射
             },
             true)//true表式开启自动映射
            .ToList();//返回List

可以试试自动映射功能 ,这个是以实体名字映射的

SelectAll目前如果DTO不加特性和数据库不一样是没办法映射的

建议自动映射的时候按照C#字段映射,否则添加说明

可以映射了,加特性是指什么,为什么我Dto继承Entity这个就能映射成功了

继承带有实体类特性