代码之家  ›  专栏  ›  技术社区  ›  Ronald Wildenberg

VS2010中linq到sql dbml文件的奇怪映射错误

  •  1
  • Ronald Wildenberg  · 技术社区  · 16 年前

    由于我切换到VS2010,每天有好几次在我的dbml文件中出现编译错误:

    DBML1005: Mapping between DbType 'bigint' and Type
    'MyNamespace.SecurityToken' in Column 'SecurityToken' of Type
    'Employee' is not supported
    

    SecurityToken 财产 Employee 对象)。

    安全令牌 属性的枚举类型定义如下:

    [Flags]
    public enum SecurityToken : long
    {
        None = 1,
        Admin = 2,
        ......
    }
    

    这个 安全令牌 数据库中的列的类型为 bigint

    我错过什么了吗?特别奇怪的是,当我编写与LINQ模型完全无关的代码时,错误只会偶尔发生。

    1 回复  |  直到 12 年前
        1
  •  6
  •   Oleks    16 年前

    在解析枚举时,这似乎是一个LINQ错误。解决方法是添加 global:: 前缀。

    <Column Name="SecurityToken" Type="global::MyNamespace.SecurityToken" 
            DbType="BigInt NOT NULL" CanBeNull="false" />