如何使用 LINQ 生成 SQL?
我希望能够采用这样的 LINQ 语句。
var User = from u in Users
where u.UserID == 7
select u.UserName;
并让它像这样生成 SQL。
SELECT UserName FROM Users WHERE Users.UserID = 7
我知道 LINQ TO SQL 会执行此操作,但我不想要所有添加的 xml 映射和生成的代码。 显然这是可能的,因为 LINQ TO SQL 可以做到这一点,但是它是如何做到的呢?
更新
我不想使用 LINQ to SQL 的另一个原因是我想将它用于 PostgreSQL。
I want to be able to take a LINQ statement like this.
var User = from u in Users
where u.UserID == 7
select u.UserName;
And have it generate SQL like this.
SELECT UserName FROM Users WHERE Users.UserID = 7
I know LINQ TO SQL does this but I don't want all that added xml mapping and generated code.
Obviously this is possible since LINQ TO SQL does it but how does it do it?
Update
Other reason why I don't want to use LINQ to SQL is because I want to use it for PostgreSQL.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
因此,您应该下载 LinqPad:
http://www.linqpad.net/
这将为您提供一些不错的信息关于 LINQ 正在做什么。
So, you should download LinqPad:
http://www.linqpad.net/
This will give you some nice information about what LINQ is doing.
您可能需要此处建议的方法之一 - http:// www.thereforesystems.com/view-query-generate-by-linq-to-sql/
但是您可以考虑使用实体框架与 Postgres SQL http://www.devart.com/dotconnect/postgresql/
You probably want one of the approaches suggested here- http://www.thereforesystems.com/view-query-generate-by-linq-to-sql/
But you could consider instead using Entity Framework with Postgres SQL http://www.devart.com/dotconnect/postgresql/
目前似乎还没有一个开源生产就绪的 LINQ to PostgreSQL 库。
因此,由于这是一个新项目,我将使用 MongoDB 和 MongoDB-CSharp 作为我的 LINQ 驱动程序。
它也能完成我需要的一切,还有一个额外的好处,那就是不必担心模式和存储过程。
Right now there doesn't seem to be an open source production ready LINQ to PostgreSQL library.
So since this is a new project I'm going to use MongoDB with MongoDB-CSharp as my LINQ driver.
It does everything I need it too with the added benefit of not having to worry about schemas and stored procedures.
尝试使用 Devart LinqConnect - http://www.devart.com/linqconnect/。它支持 PostgreSQL,并允许您为 sql 生成定义灵活的模板。
Try to use Devart LinqConnect - http://www.devart.com/linqconnect/. It supports PostgreSQL and allows you to define flexible templates for sql generation.