问题标签 [columnattribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
428 浏览

c# - 将查询列映射到 LINQ 中具有不同名称的属性。ColumnAttribute.Name 不起作用

我有一个从表中检索三列的查询 - ID、EMAIL_ID_NUMBER 和 MESSAGE_SUBJECT。我想将这三列映射到对象 ID、EMAIL_ID_NUMBER 和 MessageSubject 的属性(选择名称以突出问题)。问题是映射没有按我的预期工作。

我希望当我在某个属性旁边指定 Column(Name = "COLUMN1") 时,COLUMN1 的值将存储到该属性中。但是,它不起作用。仅当属性名称与列名称完全相同时才存储该值。例如在这种情况下...

...我希望查询中的 MESSAGE_SUBJECT 列将填充 MessageSubject 属性。然而,这并没有发生。问题是我该怎么做?

其他属性的填充没有问题,因为它们的名称与查询中列的名称相同。

代码如下

我得到的输出如下所示:

例如,即使底层查询返回 MESSAGE_SUBJECT 列的数据,MessageSubject 也始终为空。

有几个我不喜欢的潜在解决方案。

  1. 使属性名称与列名称相同。例如,Record1 类将具有属性 ID、EMAIL_ID_NUMBER 和 MESSAGE_SUBJECT。
  2. 在查询中使用列别名来匹配属性名称。例如,使用查询“从 EMAIL_NOTIFICATIONS 中选择 ID、EMAIL_ID_NUMBER 名称、MESSAGE_SUBJECT MessageSubject”和 Record1 属性名称 ID、Name 和 MessageSubject。