由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C# 访问数据库的问题
相关主题
dot net Q: dataset, entity data model, LINQ, entity frameworkQuerying JSON in Postgres
《Entity Framework 4 实战》PDF]一道C++面试编程题
作为程序员,oracle database需要掌握什么方面?有人能解释一下这段C++代码吗
Hibernate值得深入学习吗?how to resolve this bug?
Everyone hate java now?帮帮看看这段tree insertion
请教大家一个LINQ to SQL 的 querynhibernate
Windows下大家都用什么SqlConsole啊?[合集] 如何得到一个指向STL元素的指针?
question about using Hive parameter (转载)code generation
相关话题的讨论汇总
话题: ef话题: sql话题: student话题: linq话题: query
进入Programming版参与讨论
1 (共1页)
w*********r
发帖数: 73
1
现在有一个类 Student,其成员为
Student
{
ID,
Name,
Year,
Email,
Phone
}
程序从用户界面或者别的地方读取信息,生成一个一个的Student的实例。现在要把这
些Student的实例存到数据库里面,我用的方法是写SQL语句,SELECT/INSERT/UPDATE等
等。
请问,有没有什么现成的Adapter或者辅助类,传入一个Student的Object,Adapter自
己去操作数据库?不需要我自己写SELECT/INSERT/UPDATE等SQL语句?
谢谢。
c**t
发帖数: 2744
2
do you know data adapter?

【在 w*********r 的大作中提到】
: 现在有一个类 Student,其成员为
: Student
: {
: ID,
: Name,
: Year,
: Email,
: Phone
: }
: 程序从用户界面或者别的地方读取信息,生成一个一个的Student的实例。现在要把这

w*********r
发帖数: 73
3
能否详细说说?
我只知道Data Adapter这个东西,具体该什么时候用,怎么用,不清楚。

【在 c**t 的大作中提到】
: do you know data adapter?
s***o
发帖数: 2191
4
I wonder if Entity framework provides similar features, unfortunately I don'
t know much about it yet.
Other than that, I don't think there is a "direct" way to load your class ob
ject into a database.
For a single record, executing your SQL through SqlCommand probably is the
simplest. With the help of a light-weight SqlHelper class, you can get it do
ne in a few lines.
If it's a batch operation, you may want to convert your collection into a da
tatable and use SqlDataAdapter's Update method.
If it's all about insertions, SqlBulkCopy is the most efficient way.
just my two cents

【在 w*********r 的大作中提到】
: 现在有一个类 Student,其成员为
: Student
: {
: ID,
: Name,
: Year,
: Email,
: Phone
: }
: 程序从用户界面或者别的地方读取信息,生成一个一个的Student的实例。现在要把这

f*********9
发帖数: 718
5
Entity Framework
Subsonic
CSLA
etc.
这些都可以做OR mapping
Entity Framework (4.0) 感觉最好, 如果在数据库里面把表, Prime key/Foreign key
都设计好了. CRUD/navigation 都很容易.

【在 w*********r 的大作中提到】
: 现在有一个类 Student,其成员为
: Student
: {
: ID,
: Name,
: Year,
: Email,
: Phone
: }
: 程序从用户界面或者别的地方读取信息,生成一个一个的Student的实例。现在要把这

o****e
发帖数: 916
6
linq to sql 最简单,最容易上手
visual studio里连上数据库,建一个新的dbml,把table拖拉过来,然后就可以直接
code了,数据结构都是strong typed
a***x
发帖数: 26368
7
记着千万不要搞任何fancy的东东

【在 o****e 的大作中提到】
: linq to sql 最简单,最容易上手
: visual studio里连上数据库,建一个新的dbml,把table拖拉过来,然后就可以直接
: code了,数据结构都是strong typed

f*********9
发帖数: 718
8
请定义一下fancy.
linq 用得好的话, 一行代码,可以顶5-10行代码。 而且很容易读懂代码。
用抽象度更高的语言, 开发软件是个趋势。
总不成用汇编和c 做此类的系统吧.

【在 a***x 的大作中提到】
: 记着千万不要搞任何fancy的东东
a***x
发帖数: 26368
9
read only, without in clause, no recursive codes.
就是不用脑子的简单sql

【在 f*********9 的大作中提到】
: 请定义一下fancy.
: linq 用得好的话, 一行代码,可以顶5-10行代码。 而且很容易读懂代码。
: 用抽象度更高的语言, 开发软件是个趋势。
: 总不成用汇编和c 做此类的系统吧.

o****e
发帖数: 916
10
linq 的局限性确实是比较明显的。但对一般应用,上手快就行,做做prototype,把有
限的时间更多的花在构架之类的地方,而不是折腾很难debug的sql command。优化是以
后的事,把一个linq to sql query 替换成stored proc也就是几行代码的事,当然前
提是数据结构要清楚,data model要简洁。
相关主题
请教大家一个LINQ to SQL 的 queryQuerying JSON in Postgres
Windows下大家都用什么SqlConsole啊?一道C++面试编程题
question about using Hive parameter (转载)有人能解释一下这段C++代码吗
进入Programming版参与讨论
f*********9
发帖数: 718
11
能不能详细说说 linq 的局限性.

【在 o****e 的大作中提到】
: linq 的局限性确实是比较明显的。但对一般应用,上手快就行,做做prototype,把有
: 限的时间更多的花在构架之类的地方,而不是折腾很难debug的sql command。优化是以
: 后的事,把一个linq to sql query 替换成stored proc也就是几行代码的事,当然前
: 提是数据结构要清楚,data model要简洁。

f*********9
发帖数: 718
12
同意. 可是实施难, 搞个比较强的dba, 给你写一大些的store procedure. 再加上
function.把database layer 搞得其胖无比. 费好多口水, 都不一定能统一看法,不影
响积极性.

【在 a***x 的大作中提到】
: read only, without in clause, no recursive codes.
: 就是不用脑子的简单sql

p**********a
发帖数: 158
13
Entity Framework 是垃圾中的垃圾. 小规模用用还勉强, 结构复杂了完全是灾难.
b******n
发帖数: 592
14
I think it is C# efforts to catch up with Hibernation, Python's SQL objects.
In big projects, complicated models, everything will look like disaster
anyway,
I don't think this will be the cause of it.

【在 p**********a 的大作中提到】
: Entity Framework 是垃圾中的垃圾. 小规模用用还勉强, 结构复杂了完全是灾难.
i***c
发帖数: 301
15
db4o可以直接object 到数据库
f*********9
发帖数: 718
16
为什么是垃圾中的垃圾呢?
结构复杂了怎么是灾难? 性能速度太差了? 还是几百个表放在一个edmx 要用放大镜才
能看清楚?
给个具体的理由好不好?

【在 p**********a 的大作中提到】
: Entity Framework 是垃圾中的垃圾. 小规模用用还勉强, 结构复杂了完全是灾难.
p**********a
发帖数: 158
17
太多了. 因为公司总是要求用自己的产品,所以我小一直深受其害.
几个最简单的, cascade delete 经常出错, change tracking 经常出错, abstract
class
以及子类 FK reference 乱连, 更新以后不会自动 delete, 等等等等.
另外不要跟 PEM Validation 一起用...

【在 f*********9 的大作中提到】
: 为什么是垃圾中的垃圾呢?
: 结构复杂了怎么是灾难? 性能速度太差了? 还是几百个表放在一个edmx 要用放大镜才
: 能看清楚?
: 给个具体的理由好不好?

c***n
发帖数: 809
18
hibernate.net

【在 w*********r 的大作中提到】
: 现在有一个类 Student,其成员为
: Student
: {
: ID,
: Name,
: Year,
: Email,
: Phone
: }
: 程序从用户界面或者别的地方读取信息,生成一个一个的Student的实例。现在要把这

b******g
发帖数: 81
19
How about inheriting class? I have sub/derived classes to persist. e.g.
People(base) -> Student(derived). I have People table, I want the derived
class be saved to People table as well.
Would any of these tools be able to handle that?

key

【在 f*********9 的大作中提到】
: Entity Framework
: Subsonic
: CSLA
: etc.
: 这些都可以做OR mapping
: Entity Framework (4.0) 感觉最好, 如果在数据库里面把表, Prime key/Foreign key
: 都设计好了. CRUD/navigation 都很容易.

f*********9
发帖数: 718
20
没有听说过专用工具做这个的。 回头一定找找相关的资料。
下面这个连接是讲:在EF里面, 如何实施继承的。
http://mosesofegypt.net/post/Inheritance-and-Associations-with-Entity-Framework-Part-1.aspx
但是我个人不喜欢这个方式。
关系数据库嘛, 关系是强项. 你说这个例子, 我会这样做:
1.定义people id 为主键, 放在student 表里.
2. 在数据模型定义一个1对1的关系 People -> Student
这样在student, people 都各会产生一个浏览属性(navigation property).
浏览很容易, 但是问题是:有可能要更新2次.
navigation 是ef 的强项.

【在 b******g 的大作中提到】
: How about inheriting class? I have sub/derived classes to persist. e.g.
: People(base) -> Student(derived). I have People table, I want the derived
: class be saved to People table as well.
: Would any of these tools be able to handle that?
:
: key

相关主题
how to resolve this bug?[合集] 如何得到一个指向STL元素的指针?
帮帮看看这段tree insertioncode generation
nhibernateNeed a Jr developer (转载)
进入Programming版参与讨论
b******g
发帖数: 81
21
Thanks for the feedback! Looks good with the link you provided.
I have a follow up question:
if later I have any change in the Person table (adding another column), and
I need to update Person(base) class. Will EF be flexible enough to update
all the sub/derived classes?

【在 f*********9 的大作中提到】
: 没有听说过专用工具做这个的。 回头一定找找相关的资料。
: 下面这个连接是讲:在EF里面, 如何实施继承的。
: http://mosesofegypt.net/post/Inheritance-and-Associations-with-Entity-Framework-Part-1.aspx
: 但是我个人不喜欢这个方式。
: 关系数据库嘛, 关系是强项. 你说这个例子, 我会这样做:
: 1.定义people id 为主键, 放在student 表里.
: 2. 在数据模型定义一个1对1的关系 People -> Student
: 这样在student, people 都各会产生一个浏览属性(navigation property).
: 浏览很容易, 但是问题是:有可能要更新2次.
: navigation 是ef 的强项.

b**********s
发帖数: 40
22
没问题,EF可以双向更新。我觉的EF很好用,foreign key support使写linq query的
速度大大增加,还可以dynamic build linq query.个人认为还守着sql statement不放
的人是懒得学LINQ,不喜欢与时俱进。个人浅见。
D*******a
发帖数: 3688
23
如果要insert大量object,又不能立刻savechanges,可能会内存不够

【在 b**********s 的大作中提到】
: 没问题,EF可以双向更新。我觉的EF很好用,foreign key support使写linq query的
: 速度大大增加,还可以dynamic build linq query.个人认为还守着sql statement不放
: 的人是懒得学LINQ,不喜欢与时俱进。个人浅见。

f*********9
发帖数: 718
24
没有问题, EF 能自动监测, 数据库scehma 变化. 你可以打开edmx 文件,然后right-click for context menu to update.

and

【在 b******g 的大作中提到】
: Thanks for the feedback! Looks good with the link you provided.
: I have a follow up question:
: if later I have any change in the Person table (adding another column), and
: I need to update Person(base) class. Will EF be flexible enough to update
: all the sub/derived classes?

S***k
发帖数: 370
25
Linq 不能同 EF 简单划等号。不用EF也一样可以用linq.linq to dataset, linq to
xml 也是linq。
EF的缺点还是很明显的。前面提到的delete的问题,还有内存不够的问题我都遇到过。
个人认为在做架构的时候还要注意EF并不能完全支持sql server 的特性。一个简单的
例子,你可以试试建 EF 到adventureworks2008。product.document 那个table就没法
加进去,因为EF不支持HierarchyID。adventureworks2008是微软的sample DB,结构已
经算简单的了。如果database已经存在若干年,不是就着EF设计的,还是慎用EF。
做database的不喜欢EF,个人认为是因为有些人写EF linq query根本就不顾及到了
database变成了什么样的sql query。一旦有了一个query整个大table的过来,
db admin 没有办法马上解决,只能返回给程序员重写,重compile。其间的扯皮就不必
说了。我遇到过的最糟糕的一次,是先写好sql query, 由director坐在某程序员旁边
监督, 让该人写一个能翻译成写好sql query 的 EF linq query。
sql statement 是db programming的根本。为linq 而放弃sql query 恐怕是舍本逐末。

【在 b**********s 的大作中提到】
: 没问题,EF可以双向更新。我觉的EF很好用,foreign key support使写linq query的
: 速度大大增加,还可以dynamic build linq query.个人认为还守着sql statement不放
: 的人是懒得学LINQ,不喜欢与时俱进。个人浅见。

k**0
发帖数: 19737
26
re this

【在 S***k 的大作中提到】
: Linq 不能同 EF 简单划等号。不用EF也一样可以用linq.linq to dataset, linq to
: xml 也是linq。
: EF的缺点还是很明显的。前面提到的delete的问题,还有内存不够的问题我都遇到过。
: 个人认为在做架构的时候还要注意EF并不能完全支持sql server 的特性。一个简单的
: 例子,你可以试试建 EF 到adventureworks2008。product.document 那个table就没法
: 加进去,因为EF不支持HierarchyID。adventureworks2008是微软的sample DB,结构已
: 经算简单的了。如果database已经存在若干年,不是就着EF设计的,还是慎用EF。
: 做database的不喜欢EF,个人认为是因为有些人写EF linq query根本就不顾及到了
: database变成了什么样的sql query。一旦有了一个query整个大table的过来,
: db admin 没有办法马上解决,只能返回给程序员重写,重compile。其间的扯皮就不必

f*********9
发帖数: 718
27
我们是这样解决这个问题的:
- dba 负责所有复杂的数据查询(query)。
- 把dba写好的store procedure,引入EF(Import function),映射到同一entity上面
这样就2个层之间职责就界定的很清楚了。
EF有很多的问题(BUG)和设计缺陷,我自己遇到大约有7-8个。可是个人还是觉得EF是OR
mapping
中最喜欢的。
jquery 好吧,可是上次我看还有几百个bug等着。
能不能系统的谈谈怎样合理运用ef?或者推荐一个OR mapping工具,或OR mapping主意
多谢交流

做database的不喜欢EF,个人认为是因为有些人写EF linq query根本就不顾及到了
database变成了什么样的sql query。一旦有了一个query整个大table的过来,
db admin 没有办法马上解决,只能返回给程序员重写,重compile。其间的扯皮就不必
说了。我遇到过的最糟糕的一次,是先写好sql query, 由director坐在某程序员旁边
监督, 让该人写一个能翻译成写好sql query 的 EF linq query。

【在 S***k 的大作中提到】
: Linq 不能同 EF 简单划等号。不用EF也一样可以用linq.linq to dataset, linq to
: xml 也是linq。
: EF的缺点还是很明显的。前面提到的delete的问题,还有内存不够的问题我都遇到过。
: 个人认为在做架构的时候还要注意EF并不能完全支持sql server 的特性。一个简单的
: 例子,你可以试试建 EF 到adventureworks2008。product.document 那个table就没法
: 加进去,因为EF不支持HierarchyID。adventureworks2008是微软的sample DB,结构已
: 经算简单的了。如果database已经存在若干年,不是就着EF设计的,还是慎用EF。
: 做database的不喜欢EF,个人认为是因为有些人写EF linq query根本就不顾及到了
: database变成了什么样的sql query。一旦有了一个query整个大table的过来,
: db admin 没有办法马上解决,只能返回给程序员重写,重compile。其间的扯皮就不必

b******g
发帖数: 81
28
What if I need to pull a list of Students(say 10000s), modify some of the
student information, then save. Would there be any performance issue with
Entity Framework?

【在 D*******a 的大作中提到】
: 如果要insert大量object,又不能立刻savechanges,可能会内存不够
b******g
发帖数: 81
29
I like this resolution better.

上面
OR

【在 f*********9 的大作中提到】
: 我们是这样解决这个问题的:
: - dba 负责所有复杂的数据查询(query)。
: - 把dba写好的store procedure,引入EF(Import function),映射到同一entity上面
: 这样就2个层之间职责就界定的很清楚了。
: EF有很多的问题(BUG)和设计缺陷,我自己遇到大约有7-8个。可是个人还是觉得EF是OR
: mapping
: 中最喜欢的。
: jquery 好吧,可是上次我看还有几百个bug等着。
: 能不能系统的谈谈怎样合理运用ef?或者推荐一个OR mapping工具,或OR mapping主意
: 多谢交流

S***k
发帖数: 370
30
EF最让我动心的就是linq query可以解决以前不得不用dynamic sql的情形。如果EF只
用来省下写SP entity的时间,用不用EF也无大所谓了。架一个database access layer
也不是一件为难的事。
至于jquery,我只在web site UI里用过。It连OR mapping 都能做,果真快成妖了。
我对OR mapping 工具没什么研究,合用就好。我们自己开发过针对我们自己DB的
mapping tool,结果大家觉得还是不如直接用adapter架database access layer用得方
便。对EF我的原则是只在独立的辅助性的application中用,就算出了问题,也不会影
响太大。

上面
OR

【在 f*********9 的大作中提到】
: 我们是这样解决这个问题的:
: - dba 负责所有复杂的数据查询(query)。
: - 把dba写好的store procedure,引入EF(Import function),映射到同一entity上面
: 这样就2个层之间职责就界定的很清楚了。
: EF有很多的问题(BUG)和设计缺陷,我自己遇到大约有7-8个。可是个人还是觉得EF是OR
: mapping
: 中最喜欢的。
: jquery 好吧,可是上次我看还有几百个bug等着。
: 能不能系统的谈谈怎样合理运用ef?或者推荐一个OR mapping工具,或OR mapping主意
: 多谢交流

相关主题
Why RavenDB isn’t written in F#《Entity Framework 4 实战》PDF]
[合集] 老是关心语言快慢的人看过来作为程序员,oracle database需要掌握什么方面?
dot net Q: dataset, entity data model, LINQ, entity frameworkHibernate值得深入学习吗?
进入Programming版参与讨论
f*********9
发帖数: 718
31
谢谢交流

layer

【在 S***k 的大作中提到】
: EF最让我动心的就是linq query可以解决以前不得不用dynamic sql的情形。如果EF只
: 用来省下写SP entity的时间,用不用EF也无大所谓了。架一个database access layer
: 也不是一件为难的事。
: 至于jquery,我只在web site UI里用过。It连OR mapping 都能做,果真快成妖了。
: 我对OR mapping 工具没什么研究,合用就好。我们自己开发过针对我们自己DB的
: mapping tool,结果大家觉得还是不如直接用adapter架database access layer用得方
: 便。对EF我的原则是只在独立的辅助性的application中用,就算出了问题,也不会影
: 响太大。
:
: 上面

D*******a
发帖数: 3688
32
10000个还好

【在 b******g 的大作中提到】
: What if I need to pull a list of Students(say 10000s), modify some of the
: student information, then save. Would there be any performance issue with
: Entity Framework?

c***n
发帖数: 809
33
不是说了hibernate,你要把table mapping 成object, hibernate是比较好的一个.

derived

【在 b******g 的大作中提到】
: How about inheriting class? I have sub/derived classes to persist. e.g.
: People(base) -> Student(derived). I have People table, I want the derived
: class be saved to People table as well.
: Would any of these tools be able to handle that?
:
: key

b******g
发帖数: 81
34
Dude.
I've used NHibernate - frankly I don't I like it very much. I don't feel
like writing xml. I've even tried Fluent NHibernate - to get around the xml
writing, if you would like to recommend that. I don't like Fluent NHibernate
either.
I don't know how you value Hibernate better than others. To me it is not
very user-friendly to developers.

【在 c***n 的大作中提到】
: 不是说了hibernate,你要把table mapping 成object, hibernate是比较好的一个.
:
: derived

c***n
发帖数: 809
35
you don't like the xml part? so you would like something like annotation?

xml
NHibernate

【在 b******g 的大作中提到】
: Dude.
: I've used NHibernate - frankly I don't I like it very much. I don't feel
: like writing xml. I've even tried Fluent NHibernate - to get around the xml
: writing, if you would like to recommend that. I don't like Fluent NHibernate
: either.
: I don't know how you value Hibernate better than others. To me it is not
: very user-friendly to developers.

b******g
发帖数: 81
36
Are you talking about C# or Java?

【在 c***n 的大作中提到】
: you don't like the xml part? so you would like something like annotation?
:
: xml
: NHibernate

1 (共1页)
进入Programming版参与讨论
相关主题
code generationEveryone hate java now?
Need a Jr developer (转载)请教大家一个LINQ to SQL 的 query
Why RavenDB isn’t written in F#Windows下大家都用什么SqlConsole啊?
[合集] 老是关心语言快慢的人看过来question about using Hive parameter (转载)
dot net Q: dataset, entity data model, LINQ, entity frameworkQuerying JSON in Postgres
《Entity Framework 4 实战》PDF]一道C++面试编程题
作为程序员,oracle database需要掌握什么方面?有人能解释一下这段C++代码吗
Hibernate值得深入学习吗?how to resolve this bug?
相关话题的讨论汇总
话题: ef话题: sql话题: student话题: linq话题: query