gpt4 book ai didi

c# - VS2010 中 linq-to-sql dbml 文件中的奇怪映射错误

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:28 25 4
gpt4 key购买 nike

自从我切换到 VS2010 后,我的 dbml 文件每天都会出现几次编译错误:

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

当我重新启动 VS2010 时,错误消失了。使用此 dbml 文件运行我的应用程序没有问题(具体来说,在 Employee 对象的 SecurityToken 属性中获取正确值没有问题)。

SecurityToken 属性是一个枚举类型,定义如下:

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

数据库中的SecurityToken列是bigint类型。

我错过了什么吗?当我编写与 LINQ 模型完全不相关的代码时,有时只会发生错误,这一点尤其奇怪。

最佳答案

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

在您的 DBML 文件中对此的必要映射可能如下所示:

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

当然,您可以使用设计器来做同样的事情。

关于c# - VS2010 中 linq-to-sql dbml 文件中的奇怪映射错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2689787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com