我有一個表在Firebird數據庫錯誤與像
CREATE TABLE CIDADE (
CID_CD SMALLINT NOT NULL,
CID_DS CHAR(20) NOT NULL,
CID_UF CHAR(2) NOT NULL,
CID_DISTANCIA_SEDE SMALLINT NOT NULL,
CID_CD_ALTERNATIVO INTEGER NOT NULL,
CID_DT_LK DATE NOT NULL);
我做使用LINQ與表列的查詢和我得到的CHAR類型列錯誤的搜索:
算術異常,數值溢出或字符串截斷字符串右截斷
識別問題,我意識到,String類型字段的大小超出第l模仿該領域。我不明白這一點,因爲我在這些字段上映射了正確的長度限制。
跟隨我的代碼:
public IQueryable<Cidade> Pesquisar(Cidade cidade)
{
string uf = cidade.UF; // "SP" for example
var query = pctxContexto.Cidade.Where(c=> c.UF.Contains(uf));
return query;
}
映射:
// Table Mapping
ToTable("CIDADE");
//Chave primária
HasKey(t => new { t.Codigo });
//Propriedades
Property(t => t.Codigo).HasColumnName("CID_CD");
Property(t => t.Descricao)
.IsRequired()
.HasMaxLength(20)
.HasColumnType("Char")
.HasColumnName("CID_DS");
Property(t => t.UF)
.IsRequired()
.HasMaxLength(2)
.HasColumnType("Char")
.HasColumnName("CID_UF");
Property(t => t.DistanciaSede)
.IsRequired()
.HasColumnType("Smallint")
.HasColumnName("CID_DISTANCIA_SEDE");
Property(t => t.Codigo_Alternativo)
.IsRequired()
.HasColumnType("Int")
.HasColumnName("CID_CD_ALTERNATIVO");
我怎樣才能解決這個問題?爲什麼會發生?
也許你應該爲你的焦炭領域從varchar改變列類型爲char,因爲這是他們實際上是。我不確定這是否是問題,但我會說這是一個很好的猜測。 – pquest
我意識到這種改變,錯誤依然存在。 –