我有一个数据库用于列名称看起来像这样的记录
TexasBexarCountyMisdemeanorPublicRecordId [int] IDENTITY(1,1)NOT NULL,
CASE-CAUSE-NBR nvarchar NULL,
FULL-NAME nvarchar NULL,
我正在尝试创建一个映射到此表的C#对象但是我不能使用" - "符号,因为代码不喜欢它。这个问题有方法解决吗?表具有这些列的原因是因为它是从大型政府数据库导入的。我应该创建另一个没有这些" - "在标题?然后在导入阶段映射列?
我的目标是创建一个C#对象,可以使用" - "映射到列名。在它的象征。
public class TexasBexarCountyMisdemeanorPublicRecord : Entity
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
public int TexasBexarCountyMisdemeanorPublicRecordId { get; set; }
public string CASE-CAUSE-NBR { get; set; }
public string FULL-NAME { get; set; }
}
在上面的C#代码中,属性不起作用,因为" - "符号
答案 0 :(得分:1)
在这种情况下,您可以使用“列名”属性覆盖,使用属性名称与数据库中的列名相同。
在您的情况下,这将是:
[Column("CASE-CAUSE-NBR")]
public string CaseCauseNumber { get; set; }
请注意,使用Fluent API也可以这样做:
modelBuilder.Entity<TexasBexarCountyMisdemeanorPublicRecord>()
.Property(t => t.CaseCauseNumber )
.HasColumnName("CASE-CAUSE-NBR");
答案 1 :(得分:0)
在mysql中你可以使用backtics
`TexasBexarCountyMisdemeanorPublicRecordId` [int] IDENTITY(1,1) NOT NULL,
`CASE-CAUSE-NBR` nvarchar NULL,
`FULL-NAME` nvarchar NULL,
这应该将减号映射到sql引擎