我想为一个带有表的数据库创建一个SqlDataConnection
类型的提供程序,该表名称恰好是'System'。
在编译过程中,我收到错误:
类型提供程序'Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders'报告错误: tmpB600.cs(12,7):警告CS0437:'c:\ Users \ krajewa1 \ AppData \ Local \ Temp \ tmpB600.cs'中的类型'System'与'c:\ Windows中导入的命名空间'System'冲突\ Microsoft.NET \框架\ v4.0.30319 \ System.Configuration.dll”。使用'c:\ Users \ krajewa1 \ AppData \ Local \ Temp \ tmpB600.cs'中定义的类型。 [...](以下数百个错误)
为了解决这个问题,我尝试过:
LocalSchemaFile
与不包含“System”的dbml文件一起使用
表。它没有帮助,仍然是同样的错误。ContextTypeName
参数(我希望将类型放在另一个命名空间中)。它没有帮助,仍然是同样的错误。我的问题与这个问题中的问题完全相同:
SqlDataConnection type provider generates massive error with SQL Server 2008 R2。
然而,在该线程中,用户没有找到问题的真正原因,也没有提供答案。
答案 0 :(得分:1)
我不知道F#但您是否可以为有问题的表名创建SQL Server同义词? http://msdn.microsoft.com/en-gb/library/ms177544.aspx
CREATE SYNONYM [SystemTable] for [System]
然后通过同义词引用该表,而不是它在F#代码中的真实姓名。
可能只需重命名表,但如果有任何其他查询正在运行,则还需要更改它们。同义词表示两个名称都有效