簡體   English   中英

實體框架6:修剪無法正常工作

[英]Entity Framework 6: Trim does not work properly

我有一個進程,應該將數據從一個數據庫實體復制到另一個數據庫實 因此我在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

使用Trim操作,我想讓它看起來像這樣: 253089 當我執行它時,第一種方式看起來很好。 但是如果我直接在數據庫上運行這個SQL查詢,它會得到如下結果:

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

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

為什么Entity Framework不執行修剪操作?

Code字段的類型必須是varchar(11),因為char(11)具有固定長度。 DB因此將始終填充到全長。 請將其更改為varchar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM