gpt4 book ai didi

c# - Entity Framework 6 : Trim does not work properly

转载 作者:行者123 更新时间:2023-11-30 16:45:06 25 4
gpt4 key购买 nike

我有一个过程应该将数据从一个数据库实体复制到另一个数据库实体。因此,我在 C# 中使用 Entity Framework 6LINQ 表达式:

public partial class ReferenceEntities : DbContext {
public Nullable<System.DateTime> ActivationDate { get; set; }

public string Code { get; set; }
}

this.ReferenceEntities.ReferenceEntity.AsEnumerable().Select(referenceEntry => new StagingReferenceLoader() {
ActivationDate = referenceEntry.ActivationDate,
Code = referenceEntry.Code?.TrimStart('0').Trim()
});

this.ProcessingEntities.StagingReferenceLoader.AddRange(stagingEntries);
this.ProcessingEntities.SaveChanges();

Code 是受此过程影响的两个实体中的 char(11) 列。

示例:

StagingReferenceLoader 中,Code 值如下所示:00000253089

通过修剪操作,我想让它看起来像这样:253089。当我执行它时,这在第一种方式上看起来很好。但是如果我直接在数据库上运行这个 SQL 查询,它会给出如下结果:

SELECT DATALENGTH(code), len(code), code
FROM staging.ReferenceLoader

datalength | len | code
11 | 6 | 253177
11 | 6 | 270724

为什么 Entity Framework 不做 trim 操作?

最佳答案

Code字段的类型必须是varchar(11),因为char(11)是固定长度的。 DB 将始终将其填充到全长。请将其更改为 varchar。

关于c# - Entity Framework 6 : Trim does not work properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42758177/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com