首页 / 知识
.NET 2.0运行时上的LINQ
2023-04-11 16:04:00

LINQ on the .NET 2.0 Runtime启用LINQ的应用程序可以在仅安装.NET 2.0运行时的计算机上运行吗? 从理论上讲,LINQ只是语法糖,而且生成的IL代码应与.NET 2.0中的外观相同。 如何在不使用.NET 3.5库的情况下编写LINQ? 它可以在.NET 2.0上运行吗? 没人提到LINQBridge很奇怪。这个小巧的项目是LINQ(IEnumerable,但没有IQueryable)及其依赖项(Func,Action等)向.NET 2.0的反向移植。和:
有一些"难题"涉及使用3.5框架中的System.Core.dll使其与.net 2.0一起运行,但是我个人不希望使用这样有些不稳定的基础。 参见此处:.NET 2.0上的LINQ支持
(需要.net 2.0 SP1,并且我不知道捆绑System.Core.dll是否违反了EULA) 从理论上讲,是的,只要您分发LINQ特定的程序集和任何依赖项。但是,这违反了Microsoft的许可。 Scott Hanselman写了一篇有关在ASP.NET 2.0上部署ASP.NET MVC的博客文章,这与您要执行的操作类似。 您可以使用mono(来自Linux的.NET)中的LINQ源来使LINQ在.NET 2.0上运行。
有人在这里做过: 简短答案:
当从VS2008中定位.Net 2.0时,请参阅有关自动可用或不费吹灰之力的.Net 3.5功能的问题。 基本上,只有"语法糖"和新的编译器(C#3.0,VB 9.0)发出与2.0兼容的IL的任何东西都可以使用。这包括LINQ使用的许多功能,例如匿名类,作为匿名委托的lambda,自动属性,对象初始化程序和集合初始化程序。
某些LINQ功能使用新3.5程序集中的类,接口,委托和扩展方法(例如System.Core.dll)。重新分发这些程序集违反了许可证,但是可以重新实现它们。使用扩展方法只需要声明一个空的
LINQ to SQL和LINQ to Entities需要许多新类( 我不确定C#。 但是,我确实知道,只要使用VS 2008编译器以2.0框架为目标,就可以编写不带3.5库的VB LINNQ代码。 但是,您将必须自己实现一些LINQ方法。 LINQ使用语法转换将查询转换为可执行代码。基本上,它将采用如下代码:
并将其转换为如下代码:
对于3.5框架附带的LINQ功能,这些方法被实现为IEnumerable或IQueryable上的扩展方法(也有许多方法可用于数据集)。 默认的IEnumerable扩展方法在System.Linq.Enumerable中定义,如下所示:
IQueryable扩展方法将表达式树而不是lambda作为参数。他们看起来像这样:
表达式树版本使您能够获得提供给子句的表达式的树表示形式,然后可将这些表达式用于生成SQL代码(或您想要的任何其他代码)。 您可能会在大约一天左右的时间内为对象创建自己的LINQ版本。一切都非常简单。 如果您想使用DLINQ,那么事情会有些困难。 不,因为虽然您认为LINQ实际上只是语法糖,但实际上它大量使用了表达式树-.NET 2.0中没有的功能。 话虽如此,.NET 3.5仅建立在.NET 2.0的基础上,这就是IL看起来不"不同"或"特殊"的原因。 我看不出为什么不应该仅安装.NET 3.5 Framework的原因。 .NET 2.0一切都可以正常运行,承诺:)
据我所知,LINQ库仅自框架3.0起可用。 您可以将linqbridge用于.net 2.0 |
最新内容
相关内容
python pip安装失败怎么回事
python pip安装失败怎么回事,培训,情况,工具,通用,系统,脚本,命令,以下,版本,以上,pip是一个现代的,通用的Python包管理工具。提供了对Pythonpythonid函数如何运行
pythonid函数如何运行,培训,地址,代码,对象,函数,内存,类型,可能会,整数,字符串,id(object)功能:返回的是对象的“身份证号”,唯一且不变,但在不python如何安装pip
python如何安装pip,培训,情况,通用,工具,脚本,以下,版本,命令,以上,管理工具,pip是一个现代的,通用的Python包管理工具[1]。提供了对Python包python怎样启动python程序运行
python怎样启动python程序运行,代码,环境,项目,工具,培训,业务,有限,程序,源文件,功能,执行Python程序的三种方式解释器——python/python3交python怎么运行dir
python怎么运行dir,培训,信息,参数,方法,列表,属性,变量,模块,类型,范围内,python运行dir的方法:dir()函数不带参数时,返回当前范围内的变量、python如何运行python
python如何运行python,代码,培训,系统,语句,模式,结果,提示符,命令,以下,文件,Python的程序运行,需要Python解释器。安装完Python在Windows或Lpython浏览器能运行python吗
python浏览器能运行python吗,代码,平台,智能,培训,灵活,项目,文件,语法,插件,浏览器,py文件不是html文件,当然不能在浏览器里打开。py文件可以python代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python详解python包管理器pip安装
python详解python包管理器pip安装,培训,管理,工具,方法,详解,源码,可能会,脚本,模块,以上,pip对于使用python的朋友并不陌生,当你想安装pythonpython怎么运行函数
python怎么运行函数,代码,工具,培训,函数,信息,检测,定义,参数,阶段,程序,python函数定义及调用1、什么是函数?在程序中,函数就是具备某一功能python可以在哪里运行
python可以在哪里运行,培训,工具,环境,项目,文件,路径,控制台,下方,环境变量,结果,如何运行Python程序(即.py文件)?第一种,使用自带的GUI工具Ipython模块能优化Python的运行速度
python模块能优化Python的运行速度吗?,代码,平台,培训,官网,环境,工作,系统,模块,程序,语言,今天介绍下Psyco模块,Psyco模块可以使你的Python