我在读那个linq是懒惰的,它没有执行查询,直到它需要。无连接使用Linq到Sql
如果这就是为什么这段代码失败的情况下:
var db = new Data.DataClasses1DataContext(@"Data Source=.\sqlexpress;Initial Catalog=MyDb;Integrated Security=True");
var companies = db.Customers.Where(x => x.Company=="Foo");
var query = companies.ToString();
如果我运行的计算机代码,没有SQL服务器上安装它不会运行,为什么?我没有做任何需要数据的陈述。如果我打电话给companies.ToList()
,那么它的代码就会失败。有没有一种方法可以在不使用连接的情况下使用Linq to SQL Classes
。我知道我做ToList()的那一刻,或者尝试枚举结果,我会得到一个错误。 我只是想使用Linq to Sql Classes来生成SQL语句并将它们看作字符串。
我有一个客户端和服务器。服务器是WCF服务,客户端是控制台应用程序。如果用户没有输入,我将发送加密查询。我希望使用Linq to Sql classes
来生成我的查询,但它并没有让我必须在客户端上安装sql server,以便我可以生成查询。
我的临时解决方案是在同一台服务器上创建第二个数据库。该数据库将被允许接受远程连接和它的整个目的是使该行
变种分贝=新Data.DataClasses1DataContext(@“一些远程连接字符串”);
工程。一旦我初始化该行,我将永远不需要再次连接。这个不成立。
我不相信company.ToString()会返回SQL查询。它应该返回查询的结果,在这种情况下它是IEnumerable。ToString() –
evanb
如果您不知道如何编写SQL语句,但您确实知道如何编写Linq2Sql Lambda表达式,那么使用[LINQPad](https://www.linqpad.net)这样的产品会非常容易。 /)编写代码,然后查看SQL语句的外观。 –
'companies.ToString()'将生成sql语句。此外,我可以使用'DataContext.GetCommand'提取要在db上执行的sqlCommands。加上它的速度更快,更安全,我认为用Linq构建查询而不是将它们放入字符串中 –