【问题标题】:Strong Typed names for DbTypeDbType 的强类型名称
【发布时间】:2023-03-22 02:55:01
【问题描述】:

是否有一个具有DbType 名称属性的类,以便我可以将下面的DbType = "DATETIME2" 更改为DbType = DbNames.DateTime2

[Column(Name = "Date", DbType = "DATETIME2", CanBeNull = false)]
public DateTime Date;

【问题讨论】:

  • 也许您可以创建 ColumnAttribute 的子类,例如 DateTime2ColumnAttribute
  • @GertArnold 谢谢。但是,如果真的没有内置的东西,那就太可惜了。至少对于 Sql Server 而言。毕竟是微软的数据库。
  • 考虑到框架中的每个单独功能都必须经过测试,并且需要 200 多名文档翻译人员,我可以想象他们会争取绝对最低限度。无论如何,它不存在,就是这样。

标签: c# sql .net sql-server linq-to-sql


【解决方案1】:

此枚举存在特定于数据库的变体,例如https://docs.microsoft.com/en-us/dotnet/api/system.data.sqldbtype?view=netframework-4.7.2 但它们不包含您作为要求概述的特定类型的常量字符串。

为什么不自己定义呢?如果您使用的是有 xxxDbType 枚举的数据库,则可以通过为它编写一个开关和制表符来减轻打字的痛苦。这将使 VS 使用 case 列表预先填充您的开关:每个枚举成员的语句;然后快速查找/替换和大写应该生成您的 const 声明..

【讨论】:

  • 谢谢。 +1。但是,如果真的没有内置的东西,那就太可惜了。至少对于 Sql Server 而言。毕竟是微软的数据库。
  • 这是什么数据访问库?
  • LinqToSql。 (我把它放在标签里。)
  • 哦,是的,忘记看标签了。只是想指出,如果您使用 SQLMetal 生成客户端上下文,它应该为您填写所有 DbType。你不使用它有什么原因吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多