Ron*_*erg 1 c# visual-studio-2010 linq-to-sql
由于我每天都会多次切换到VS2010,因此我的dbml文件中出现了编译错误:
DBML1005: Mapping between DbType 'bigint' and Type
'MyNamespace.SecurityToken' in Column 'SecurityToken' of Type
'Employee' is not supported
Run Code Online (Sandbox Code Playgroud)
当我重新启动VS2010时,错误消失.使用此dbml文件运行我的应用程序没有问题(具体来说,在对象的SecurityToken
属性中获取正确的值没有问题Employee
).
该SecurityToken
属性的枚举类型定义如下:
[Flags]
public enum SecurityToken : long
{
None = 1,
Admin = 2,
......
}
Run Code Online (Sandbox Code Playgroud)
SecurityToken
数据库中的列是类型bigint
.
我错过了什么吗?特别奇怪的是,当我编写与LINQ模型完全无关的代码时,错误只会发生.
在解析枚举时,这似乎是一个LINQ错误.解决方法是添加global::
前缀.
在DBML文件中对此进行必要的映射可能如下所示:
<Column Name="SecurityToken" Type="global::MyNamespace.SecurityToken"
DbType="BigInt NOT NULL" CanBeNull="false" />
Run Code Online (Sandbox Code Playgroud)
当然,你可以使用设计师做同样的事情.
归档时间: |
|
查看次数: |
835 次 |
最近记录: |