如何使用Linqpad在C#语句或C#程序中运行SQL查询?
是的,出于兼容性原因,我必须将SQL语句与Linq混合使用。我使用linqpad和postgres驱动程序,这些驱动程序不识别postgres的hstore。我已经知道我可以通过使用经典SQL获得这些被忽略的列。
答案 0 :(得分:2)
您可以使用LinqPad上的ExecuteCommand
直接在C#语句上运行SQL语句。您可以使用带有{0},{1}等
ExecuteCommand("DELETE FROM TableOne where PrimaryKey = {0}", primaryKey);
答案 1 :(得分:0)
您是否尝试过在LINQPad中建立连接? PostgreSQL还有一个可供下载的驱动程序吗?设置连接后,可以运行SQL或C#
答案 2 :(得分:0)
我找到了部分解决方案:
this.Command.CommandText = "select * from items LIMIT 50;";
var result = this.Command.ExecuteReader().Dump();
但结果变量是IDataReader ...而不是集合。奇怪的是Dump()方法正确显示网格。
答案 3 :(得分:0)
我有一个问题,我想只使用LINQ在PostgreSQL表中查询HStore字段。
以前,我在LINQPad中切换到SQL并以这种方式处理问题。但是,如果在执行HStore字段查询之前使用.ToList()
或类似的方法来实现查询,则LINQPad可以很好地解决问题。
例如,我有一个“调查”表,其中的AssetId
字段是一个简单的文本字段,用于“描述”与另一个表的关系,然后是一个Values
HStore字段,其结果为可能包含几个不同领域的调查。因此,如果我想查找所有具有“ number_lanes”值的“ ROAD”调查,那么我的LINQ查询是:
AssetsSurveys.Where (a => a.AssetId.StartsWith("ROAD-")).ToList().Where(a => a.Values.ContainsKey("number_lanes"))
中间的.ToList()
导致HStore字段被具体化为Dictionary
,然后可以轻松查询。