C# · 12月 25, 2021

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

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

在我的代码中,我最终有了很多转换和从int的转换.
必须有一个更好的方法.我错过了什么?

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

sql Server或LINQ将值作为字符串或int存储在数据库中无关紧要,我只想避免所有这些类型转换都在我的代码上洒下来.

可以通过扩展方法解决我的linq-to-sql-classes,如果是这样的话呢?

解决方法 您可以在DBML编辑器中使用来自数据库的类型的映射.

假设您在Visual Studio中工作(执行这些操作的顺序可能会引起高度的刺激,因为在打开属性时,它会自动在编辑器中取消选择当前的选择,等等):

>打开DBML编辑器,
>打开“属性”视图/选项卡
>在“类型”字段中指定类型.

根据我的经验,只需输入< namespace>.< type>的形式.并不总是成功,我认为这是@leppie所指的细微差别;为了安全起见,请使用全局::< namespace>.< type&gt ;.