在变量名开头使用数字

问题描述 投票:0回答:4

我正在将 SQL 数据库中的数据映射到 C# 中的对象中。问题是,其中一列不幸被命名为“100_hrs”。因此,当我创建 C# 对象时,我在声明中收到错误:

public float 100_hrs {get; set;}

我尝试过在前面使用

@
,但它不起作用。如果该属性的名称与表列的名称不同,则它不会映射。我该如何映射它?

c# entity-framework-5
4个回答
8
投票

回答为什么

@
不起作用。

@
允许您使用关键字名称声明变量,它不允许您使用无效标记。

MSDN

关于主要问题,看来你应该更改表列名称。
如果您使用某种映射引擎,例如 EntityFramework 的 NHibernate,则可以更改映射文件。示例:

[Column("100_hrs")]
public float hrs100 {get; set;}

8
投票

您可以使用如下列属性

[Column("100_hrs")]
public float hundred _hrs {get; set;}

1
投票

为什么不在数字 _100_hrs 之前使用下划线,因为如果您想将其映射到您的列,您可以通过字符串提取轻松操作它?虽然有一点开销,但它肯定可以解决您的问题。


0
投票

您可以使用特殊属性:

[JsonPropertyName("100_hrs")]
public float hrs_100 {get; set;}
© www.soinside.com 2019 - 2024. All rights reserved.