使用Linq-to-sql在sql-server中存储枚举

本文关键字:存储 枚举 sql-server Linq-to-sql 使用 | 更新日期: 2023-09-27 18:11:55

如何使用linq-to-sql在sql-server中存储枚举?

我最终在我的代码中有很多与int的转换。一定有更好的办法。我错过了什么?

sqlItem.enumValue = (int)myEnumValue;
...
myEnumValue = (MyEnumType)sqlItem.enumValue

SQL server或LINQ是否将值存储为字符串或int型并不重要,我只是想避免所有这些类型转换散布在我的代码中。

是否可以通过扩展方法来解决我的linq-to-sql类,如果是这样的话,那会是什么样子?

使用Linq-to-sql在sql-server中存储枚举

您可以在DBML编辑器中使用数据库类型的映射。

假设您在Visual Studio中工作(执行这些操作的顺序可能非常令人恼火,因为当打开属性时,它会自动取消编辑器中的当前选择,等等):

  • 打开DBML编辑器
  • 打开"属性"视图/标签
  • 在"type"字段中指定类型。

根据我的经验,仅仅以<namespace>.<type>的形式输入类型并不总是成功的,我认为这就是@leppie所指的细微差别;为安全起见,请使用global::<namespace>.<type>