大家好,我对Linqpad有一个小问题,数据库设置不佳
首先,我有一个数据库,其中创建者的表具有与其用作启用字段的表相同的列。
除此之外,这些表还有“内容和值”列。
如果表中有一个名为与Table相同的列,则对该实验进行试验后,将该列重命名为Content,然后将Value重命名为具有类似名称的列名。
如果我然后尝试查询(下面),我将使用与表相同的列名松散列。有没有人知道解决这个问题的方法。因为它使得linqpad无法使用,因为这在我目前正在使用的所有数据库表中都很突出?
以下示例
如果我有
CREATE TABLE [dbo].[TestTable](
[TestTableID] [int] NOT NULL,
[TestTable] [varchar](max) NULL,
[Content] [varchar](max) NULL,
[Value] [varchar](max) NULL
)
你可以看到我错过了
答案 0 :(得分:1)
这让我现在花了一个小时的时间,但我想我找到了一个适合你的解决方案。
问题是Linqpad本身的Linq-To-Sql提供程序。如果您打开Visual Studio并根据数据库创建上下文类,您会注意到TestTable
列已重命名为TestTable1
。
所以我利用这一点,创建了一个类型为“类库”的新项目 - 目标框架4.0。
在此我添加了一个新的Linq-to-Sql类并将TestTable拖入其中。
进入你的class1.cs并插入:(我不知道这是否是必要的)
//I named my context L2S. Replace accordingly
public L2SDataContext context = new L2SDataContext();
编译
使用类型化的上下文向Linqpad添加新连接!
连接到您的服务器
答案 1 :(得分:1)
如果你的桌子" foo&#34>会发生什么?包含一个名为" foo"的字段,然后将该字段重命名为" content"在linqpad。
在您的情况下,字段"内容"已存在,因此您最终只能在上下文表中创建的两个中的一个(因此"缺少"字段)。
作为一种变通方法,您可以尝试通过更改名称(表名,字段名,内容字段名)或创建具有别名的视图来避免冲突,以避免冲突。