n*w 发帖数: 3393 | 1 下班浏览的一下goodbug给的那篇硕士thesis。先不说论文质量。通篇也没说linq是
syntactic sugar。
其中涉及linq和syntactic sugar有关系有两处。
1. A number of new features were added to C# 3.0 in order to provide LINQ.
Individually most of these features can be classified as syntactic sugar
that, while helpful in cutting down on the tediousness of repetitive code,
have viable – albeit more verbose – workarounds in the language。
这里讲到linq用了c# 3.0里syntactic sugar的语言features。最明显的应该是type
inference。很多情况linq返回的type非常复杂。type inference在这里是极方便。
2. The q... 阅读全帖 |
|
G***l 发帖数: 355 | 2 他说java什么也就算了,但是他说linq的那些我看着觉得很好笑。真的,第一感觉不是
想跟他争论什么的,就是好笑,完全是一种看外行说着不着边际的论调的感觉。他根本
就不熟悉linq,估计根本就么有用过,有什么资格讨论细节的东西?
还有每次别人说java不够进步,别的语言有什么什么的东西很好用,java还没有。他就
说scala有什么什么,这有一毛钱关系么?只要scala有什么,java就一点不用进步了?
我说某女星是飞机场我不喜欢,你来一句奶牛的奶子都很大,这样反驳别人有意思吗?
只要是真正Java跟C#都大量用过的人,都知道C#里面linq带来的方便和开发效率。对于
C#这样的imperative,OO的语言来说,linq是一个完美的添加,既没有太简单以至于应
用不大,也没有很复杂导致学习难度,代码复杂度上升。你问任何一个在实践中用过
linq的人,都会说linq带来的好处是突出的。在linq之前,C#跟Java在语言特性上的区
别主要就是delegate跟真正的泛型。但是linq的加入让C#写代码有了行云流水的感觉。
现在所有短小的数据分析的程序,我能用Python做的绝对不会用C... 阅读全帖 |
|
C****n 发帖数: 2324 | 3 你应该是新手吧.
当MS 发布 LINQ的时候, 我都激动的不得了, 我自己做了好几年仿LINQ的东西, 可是由
于COMPILER的限制, 一直没有最优化. 有了LINQ以后, 连夜把我的所有SQL ACCESS 改
成LINQ TO SQL了.
Linq can solve 95% of daily SQL access, with the same performance as direct
SQL statement or SQL stored procedure.
There're something Linq 2 SQL simply can't do, then you fall back to SQL
statement or stored procedure.
But you should always use Linq to SQL when you can.
Build an application is easy, maintain and enhance an application is
difficult. Linq is here to ease the... 阅读全帖 |
|
k*****a 发帖数: 1463 | 4 This guy typically don't know what he is talking about, neither does he
understand the context. His intention really begs to ask whether he is able
to follow the logic and understood the questions.
If he don't understand what he is talking about, why bother. When you talk
about A, syntactic sugar , he was thinking you are on topic B ... LOL
What qualifies as syntax sugar? From his statement, he admitted Linq is just
the opposite (introduce logic coding for a sugar).
"Linq is a syntax sugar. What... 阅读全帖 |
|
a*****e 发帖数: 1700 | 5 各位吵得好热闹,我来插一句嘴,呵呵
所谓 syntactic sugar,是指和 semantics 无关的,纯语法层面的转化
而 LINQ 可以看做是两部分,一部分是它提供的特殊语法,可以直接 desugar,变成标
准的 C# 语句,所以这部分是 syntactic sugar.
另一部分,是 LINQ 提供的库函数,这些为它的 semantics 提供了具体的实现,所以
不能称为 syntactic sugar
笼统地说 LINQ 是,或者不是 syntactic sugar,都是不准确的。包括 goodbug 引的
那片 paper,也只是说 LINQ 提供了 syntactic sugar,而不是说 LINQ 除了
syntactic sugar 就没有其它内容了。
就比如 Haskell 里面的 Monad,语法部分的 do syntax,是 syntactic sugar,但是
这个 do syntax 被 desugar 为 bind 和 return 两种函数操作,但是具体实现 bind
和 return 的语义则需要程序员(或者库函数)提供 implementati... 阅读全帖 |
|
l******t 发帖数: 660 | 6 不是大牛, 但是我写一些小程序的时候, 的确用linq很方便, 所有的业务逻辑都可
以在C#里而不用写sp,对于application developer是非常的方便,
linq, 说简单点, 是c#版本的sql, 区别是data manipulation在 app里而不是在sql
engine, 这样的好处是
1. db platform transparent, 不管data set is from oracle, sql, or C# data
list, 只要是iquerable interface, 你都可以直接linq
2. data 直接transform成 object, 这对于 OO design非常有用
但是linq也好, Entity framework也好, 都会牺牲一些db 的 optimization, 如果
performance很重要, 还是建议用sp |
|
w*s 发帖数: 7227 | 7 1. in F:charp, i have my c# application project, and a DB file called db5.
mdx
2. in my c# project i uses this db5.mdx, using EF
3. now i copied the exe built from c# project to another folder and run it,
and got this, any hints pls ?
Unhandled Exception: System.InvalidOperationException: No connection string
name
d 'db5Entities' could be found in the application config file.
at System.Data.Entity.Internal.LazyInternalConnection.get_
ConnectionHasModel(
)
at System.Data.Entity.Internal.... 阅读全帖 |
|
|
g*****g 发帖数: 34805 | 9 Whatever you want to believe. Language is much more than syntax sugar. If
you really want to compare features, C# is dwalfed by Scala, among tons of
other languages. So what? Does it make Scala a more popular language? Does
it make a Scala a more useful language?
I can only LOL when you can't bring an application that can't be implemented
by Java yet masterburbating on Linq all day long. Linq can't even implement
hadoop yet Linq is so groundbreaking. On the other hand, I've
showed you plenty of ... 阅读全帖 |
|
g*****g 发帖数: 34805 | 10 I show concrete examples and references, you go in loops making empty points
. Now it proves your ignorance that you don't even know what's syntax sugar.
This is an academic discussion why Linq is a syntax sugar. And back to
hadoop, if M$ chose it to call to Linq to HPC, wouldn't it sound like Linq
is so powerful it can be used to write a Hadoop framework effectively? The
end result, a complete failure.
http://etd.auburn.edu/etd/bitstream/handle/10415/2097/Ahmad%20M
[excerpt]
Syntactic sugar is ... 阅读全帖 |
|
i***c 发帖数: 301 | 11 I already use LINQ in a application
seems in vs 2008 there is a sutomated statement: using system.linq
so seems not easy to use LINQ in vs 2005 |
|
c*********e 发帖数: 16335 | 12 谁说linq在debug的时候容易找bug?
我把visual studio设置了可以进入linq做debug,但是在debug的时候,linq语句显示为
一个大模块,然后就跳过去了,根本没法debug.
哪位大虾说说? |
|
c*********e 发帖数: 16335 | 13 谁说linq在debug的时候容易找bug?
我把visual studio设置了可以进入linq做debug,但是在debug的时候,linq语句显示为
一个大模块,然后就跳过去了,根本没法debug.
哪位大虾说说? |
|
g*****g 发帖数: 34805 | 14 又是满屏空话。你要是说linq方便,我从头到尾没否认过,syntax sugar吗,就是干这
个的。
我说的核心是,糖水能干的事情有限,.net在类库方面落后太多,生产效率是由类库决
定,不是由糖水决定的。我举了一堆C#没有的类库/产品。你们一堆人车轱辘话,不知
道举了哪个牛逼类库/产品,linq实现了java干不了的?或者放松一点,那个牛逼类库C
#实现的java没有的?
去看看Apache foundation上,多少个类库是从java port到.net,实现差了多少个版本。
难道一个linq的糖水,这些差距都可以忽略不计了? |
|
g*****g 发帖数: 34805 | 15 这个原帖说linq不是糖水,我甚至找了篇论文说linq是糖水。你连这个也要否认?
这个事情本来很明白。糖水可以简化代码,第三方类库也可以简化代码。项目越大,后
者作用越大。
我只是表明一下观点,偏偏你们几个打死都不承认。还不pathetic呢?
你觉得C#牛逼拿个牛逼产品出来,不比糖水这个级别高多了?感情linq就是最后一个遮
羞布,要维护到底吧。 |
|
g*****g 发帖数: 34805 | 16 我要说几遍你才明白。语言是用来写东西的,不是用来装逼的。
C#有的类库和产品,java都有,java有的,C#很多没有。不就说明linq这东西就是个糖
水。
糖水的意思,就是没有增加功能,可以简化语法。如果linq增加了功能,好歹也得写个
java写不出来的类库吧?你来回循环论证Linq有first class funtion有屁用。倒是用
first class function写个java实现不了的类库/产品不就得了?简单的举例你没有,
成天拿点语法绕来绕去的你不烦?本末倒置,还执迷不悟了。
troll
thesis |
|
k***s 发帖数: 277 | 17 谢了段code, 要做复杂的mapping,indexing,lookup等。
c#中的LINQ实在是用的太顺手了,嘁哩喀喳整出一段代码,
结果被同事吐槽,LINQ太多看不懂。
要是用平常的for-loop来整,先不说别的,长度要 x5.
大家对这个LINQ怎么个看法?
本代码对性能要求不高,每次也就处理<200的list,数据结构式别人设计的,
自己只能用。 |
|
g*****g 发帖数: 34805 | 18 可笑的是有傻逼 N年了,还是开口闭口 linq。那边 hadoop, Cassandra都好几代了。
要问 linq做出了啥,什么 linq to hpc微软自己阉割了倒是有名的例子。 |
|
f*****e 发帖数: 5177 | 19 【 以下文字转载自 DotNet 讨论区 】
发信人: flyfire (flyfire), 信区: DotNet
标 题: How to lock tabel with LINQ to SQL
发信站: BBS 未名空间站 (Mon Feb 16 23:56:26 2009)
Here is the table:
Col1, Seqno, ...
A, 1, ...
A, 2, ...
A, 3, ...
B, 1, ...
C, 1, ...
(Col1 + seqno) is the primary key.
When I use LINQ to insert a new record, I need to calculate next seqno. For
example, if I want to insert a new row with value A in col1, the seqno will
be 4.
It is not hard to do the calculation. But the problem is that I need to lock
the |
|
B*****g 发帖数: 34098 | 20 linq和数据库之间的交流是通过什么实现的?
linq和直接把数据读出来然后自己写C#code处理比有什么优势? |
|
o****e 发帖数: 916 | 21 【 以下文字转载自 Database 讨论区 】
发信人: okeoke (let's okeoke @ okeoke.net), 信区: Database
标 题: 问一个linq to sql编程问题
发信站: BBS 未名空间站 (Wed Jun 29 03:07:54 2011, 美东)
假设有一个table User,primary key is ID(int), one field called Name
given a list of user ID, say HashSet ids
what's the most efficient way to get the list of user?
from u in Users
where ids.Contains(u.ID)
select u
this is the most basic way i can think of. I'm sure there is a better way.
I'm using linq to sql
many thanks! |
|
o****e 发帖数: 916 | 22 搜了一下,还是直接用contains快,linq to sql会把contains 翻译成 in:
...
FROM [User] AS [t0]
WHERE [t0].[ID] IN (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10,
@p11, ... @p199)
}
参考
http://archive.msdn.microsoft.com/LinqtoSQLJoinExample
http://coolthingoftheday.blogspot.com/2008/01/being-in-in-linq- |
|
S****e 发帖数: 10596 | 23 也可以直接操作
我一直是直接操作,没什么问题
后来发现一个随机+distinct的问题
直接操作要写很长,据版上的高人说linq很简单
可能linq包含了更加复杂的功能 |
|
D******y 发帖数: 3780 | 24 没说你非要用linq, 你愿意用sqlcommand完全可以阿。
但是类似linq这样的,减少run time error, 很多错误都在compile时间就发现了。 |
|
e*******g 发帖数: 5 | 25 原来数据是dictionary, 结构如下
[
higher
file00 215 299
file18 129 251 344
file19 649
file37 523 522
.....
]
[
super
file00 218 289
file19 129 251 344
file29 649
file37 525 529
.....
]
.... (10,0000key)
input keyList=
需要使用linq 要求keyvalue中有同样文件名 然后输出
第一次试图使用linq,但是不知道如何下手 C#中
请指教 |
|
s*****w 发帖数: 215 | 26 You can use Linq Pad to test Linq query |
|
G***l 发帖数: 355 | 27 目前java好像没有类似linq的东西。把linq跟jpa类比完全是驴头不对马嘴。linq2sql
倒是能类比下,不过那玩意就是个试水产品,用的不多。至于scala更是风马牛不相及
。人家要在用java的同时需要某些功能,不是只要那个功能换别的语言。就像人家问C+
+里某些text processing怎么做,你建议人家去用perl。 |
|
g*****g 发帖数: 34805 | 28 那位明显是对scala不了解的。个人没觉得Java没有linq有什么
大问题,但对于很需要这个的。可以把需要这个功能的模块
用scala实现,然后用java调用。
http://stackoverflow.com/questions/3785413/linq-analogues-in-sc
从java的角度看,编译后的scala也是类库,并没有什么问题。
我们在产品中就使用了java/scala的混合实现。
java/scala的混合实现,要比C++/C自然得多。
scala的语法跟java并非差别很大,当不写functional部分的时候。类似
的混合实现在业界很多,通常我们把Java当作一个平台来看待,就跟.net
一样。Java本身确实不能漂亮地实现一些functional的功能,但实践中
不是太大的问题。这说得都是实际怎么做,一个语言有没有functional
功能是选择问题,有好有坏。 |
|
s***o 发帖数: 2191 | 29 there are different types of linq, if you mean linq to sql, then check on
entity framework. |
|
n*w 发帖数: 3393 | 30 c#的property是,
所有语言的array[i,j]写法是
+, -, *, / overloading 是
但linq不是,linq会用到expression tree,把代码存储成数据。再转化成其他东西,
比如sql。不是java能有的expressive power。 |
|
g*****g 发帖数: 34805 | 31 Linq is a syntax sugar. What Linq can do, collection operation etc. can be
done by Java, in a more verbose way. You are making the wrong statement. |
|
n*w 发帖数: 3393 | 32 Yes, the "from... where... select" is syntactic sugar of the method call way
to write it. They are all linq in c#. linq is a group of technologies |
|
G***l 发帖数: 355 | 33 首先,这个原帖说的linq有很强的expressive power,java没有,这个观点挺对的。没
有人说java类库或者产品不行,也没有人说业界java的使用率比C#低java不行了没人用
了。是你莫名其妙挑起争论的不是吗?我们这是说linq超好用,你没有真正用过参合过
来干嘛?你为什么那么攻击性?用一个语言用成这样,你不觉得你很pathetic吗?
库C
本。 |
|
n*w 发帖数: 3393 | 34 看30楼。
我还用linq是monad说明其不是糖水。
去掉linq后expressive power受影响。这个也可以说明其非糖水。
按你的逻辑,所以Turing complete的高级语言都是汇编的糖水。 |
|
d********u 发帖数: 5383 | 35 好虫你又转进了。在讨论LINQ,你能扯到APACHE foundation。
我来帮你说个LINQ的问题:写得很爽,但PERF有时候并不是很好,只能不用。
库C
本。 |
|
n*w 发帖数: 3393 | 36 非goodbug一方的人在前面帖子里都同意sql-like的linq syntax是dot notation
syntax的syntactic sugar。这个帖子讨论的整个linq是不是syntactic sugar。
有人认为oop之外的东西都是syntactic sugar。 |
|
g*****g 发帖数: 34805 | 37 你还真唐僧了。linq做出了什么牛逼架构和产品别人没有的?成天叽歪个没完了还。
First-class function的绝大多数功能是可以用Java的匿名内部类实现的。
所以linq就是糖水。 |
|
g*****g 发帖数: 34805 | 38 是你啥都没学到吧。我给了你无数的link,有学术的,有C# developer的blog,说linq
是syntax sugar。同时我举了大量实例,linq没有做出任何java没做出来的东西。这说
明它只是个糖水。敢问你争了这么多天,实例在那里?paper在那里?成天就你以为你
以为有蛋用。
你不服绕来绕去的,最后绕到first class function上。java 20年一直没这东西,但
是其功能可以用anonymous inner class实现。这你随便google一下都知道。lambda
expression的加入可以使得实现更简洁一些,但并不增加语言能实现的功能,你不懂不
是你的错,出来吓人就是你的不对了。
the
#" |
|
g*****g 发帖数: 34805 | 39 问得好,那为啥hadoop c#就实现不了呢?微软可是努力了,还有linq这个大杀器。什
么linq to hpc一样胎死腹中有没有。
理论上能实现跟实际上能实现是俩回事。现在的问题就是C#的成名类库都能在java上找
到实现,反之不然。至于java的列库是否在C和汇编上都有实现,就不必讨论了吧。你
这脸都成西瓜了。
做码农要是不面对实现,而成天为所谓的语法牛逼沾沾自喜。就跟鸵鸟在沙子里觉得自
己脖子长很牛逼一样。 |
|
g*****g 发帖数: 34805 | 40 你敢这么说,说明你对hadoop根本没了解。继续满足做二流语言的二流程序员吧。
http://pyfunc.blogspot.com/2012/05/hadoop-map-reduce-with-mrjob
With Hadoop, you have more flexibility in accessing files and running map-
reduce jobs with java. All other languages needs to use Hadoop streaming and
it feels like a second class citizen in Hadoop programming.
说到脑残,不知道是那个傻逼坚持有linq就更牛逼的。不知道有了linq这么牛逼的
feature,为啥C#程序员工资还是那么低呢? |
|
s***o 发帖数: 2191 | 41 Dataset is a component from ADO.NET. You can think it as a mini in-memory
database (that maps to part of your back end database). It is very "
heavyweight" so you'd better consider other approaches first. It's still
useful in some situations, for example, when you do "bulk" operations.
Linq is a very important language feature that you will use everyday. But if
you mean "Linq to Sql", then ignore it. You have Entity Framework now.
For "entity data model", I assume you mean EDM in entity framewor... 阅读全帖 |
|
n****l 发帖数: 1739 | 42 linq的性能是不是有点儿问题呀? 大的data set如果写不好的话会比for loop慢不少。
性能要求不高就无所谓了,linq应该更直观吧。 |
|
n*w 发帖数: 3393 | 43 http://www.zhihu.com/question/25351707
之前想当然以为Java会基本实现LINQ,如果没有超越的话。毕竟晚了这么久才实现。
还不知道Java8别的部分有没有解决类似问题的更好features。
Update 1: 此帖仅比较java 8 stream和linq。没有对java别的feature和其他语言比较
。java是不是比宇宙中所有其他语言好一万倍,此帖不关心。 |
|
c*******g 发帖数: 2472 | 44 想在LA或者OC附近找PROGRAMMER的工作(C#,Linq,Crystal Report,SQL),有5年工作经
验,薪水要求不高,有身份,如果能帮忙提供一些有用信息,不胜感激。 |
|
w*s 发帖数: 7227 | 45 觉得洗碗没前途了,决定自学成材。
但困难重重,头发掉了几根还是学不会。
请问有搞MS SQL 2012, c# 2012, Linq to EF 的朋友吗? |
|
c*******g 发帖数: 2472 | 46 想在LA或者OC附近找PROGRAMMER的工作(C#,Linq,Crystal Report,SQL),有5年工作经
验,薪水要求不高,有身份,如果能帮忙提供一些有用信息,不胜感激。 |
|
B*****g 发帖数: 34098 | 47 linq还不会。
不过你这个一般要用sp或者trigger |
|
s**m 发帖数: 1564 | 48 Can Rank() or Row_Number() etc help? I don't know if and how they can be
expressed in LINQ |
|
t****n 发帖数: 263 | 49 This looks like a bad database design to me.
But, anyway, I don't have to maintain this thing.
never used LINQ before. But using SQL, you can do this.
begin tran
select * from TABLE1 with (tablock, updlock, holdlock) where 1=2
then the TABLE1 will be locked until you commit or rollback the transaction. |
|
G***G 发帖数: 16778 | 50 how big files can be loaded and searched using LINQ in c#? |
|