我有一大堆带有普通SQL查询的xsd。我想迁移到LINQ。
有没有一种从SQL语句自动生成LINQ等效项的方法?
发布于 2009-01-14 07:31:51
如果您只关心将LINQ to SQL查询的结果放到IEnumberable或类似的文件中,那么可以将它们包装在ExecuteQuery中
var Space = db.ExecuteQuery<Astronaut>("SELECT TOP 10 * FROM dbo.Astronauts");如果你真的想要有正确的LINQ查询,那么也许一个选择,至少是一个可能的路径,是c#示例附带的LINQ表达式树可视化工具。http://blogs.msdn.com/charlie/archive/2008/01/31/expression-tree-basics.aspx
发布于 2009-01-14 06:25:25
没有一种简单的方法可以机械地将SQL转换为LINQ;但是,您可以重用SQL,只需将LINQ- to -SQL用于管道:
ctx.ExecuteQuery<Foo>(sql, arg1, arg2, ...);这将从sql执行TQSL,使用arg1和arg2替换参数占位符({0},{1} IIRC),并将结果网格视为一系列Foo实例(因此您不必编写解析代码)。
还有:
ctx.ExecuteCommand(sql, arg1, arg2, ...);当您的sql没有返回结果时使用。
或者,从您的SQL创建SPROC,并从LINQ-to-SQL或Entity Framework使用它们。
发布于 2009-01-14 06:19:55
据我所知,那里没有库,但可以做一些工作。
我认为将sql文本(一个有限但有用的子集)解析成dynamic linq并不太难。这可能不会100%解决你的用例,但是你很可能会满足80-90%的需求
https://stackoverflow.com/questions/441942
复制相似问题