实在是,没看出这样设计有啥好处。
业务太简单,如果业务复杂,该怎么设计。
没有使用缓存,对大型系统这样不行吧。
re: 浅谈Linq to Sql 的不足 中华小鹰 2008-07-02 10:48
--引用--------------------------------------------------
matta: 楼主,你对linq to sql太无知了.
"性能问题
这个就不用说了,通过反射来实现的,当然有损失,也能接受,
"
这是你自己想当然的吧.好好认真了解了再写评论吧.
--------------------------------------------------------
请问,如果不通过反射的话,那它是通过什么方式实现的?
re: 浅谈Linq to Sql 的不足 中华小鹰 2008-07-02 10:46
@陈文锐
这就完了,只读的字段当然就只读了,那么既然如此,你如何把数据库中的数据通过linq to sql赋进去?
re: 浅谈Linq to Sql 的不足 中华小鹰 2008-07-01 20:06
@陈文锐
能不能说得详细一点,如果该字段是readonly的话,请问反射如何对该字段赋值?在我的测试过程中,这将引发VerificationException.
re: 浅谈Linq to Sql 的不足 中华小鹰 2008-07-01 18:17
@EntLib
虽然还没有看Linq to XML, 但是Linq to Object还是很好的,我觉得这是Linq的最大的价值。
re: 浅谈Linq to Sql 的不足 中华小鹰 2008-07-01 17:39
@乐子哥
1,部分类能解决部分的问题,但是没法解决所有的问题,比如,如果EntitySet提供的功能不足以满足父对象对该集合的功能需求时,怎么办?你没法替换EntitySet,也没法继承EntitySet,因为它是密封的。
2,这个问题,就像我说的,需要了解DataContext内部的运作方式后才能知道,简单的说,Attach方法是将该实体置于DataContext的跟踪之下,它要求数据库中已经存在了该实体所对应的那一行,而不是直觉上感觉是往数据库中加一行。
re: 虚函数的调用机制 中华小鹰 2008-04-24 22:47
请教,生成的汇编代码是正宗的80X86汇编吗?
re: 浅谈C#基本数字数据类型。 中华小鹰 2008-04-23 22:29
@没有昵称
可能我没表达明白我的意思,我当然知道short,int在内存的表示,我要探究的就是编译器是怎么处理我们的代码的。
比如 float _float = 5.0;
如果有“足够聪明”的编译器的话,这行语句就不会无法编译通过了,但我们发现C#编译器无法编译通过。
当然,我也不是说C#编译器不足够聪明,这就是我前面这段加引号的原因,因为要做到类型安全,尽可能的在编译阶段发现潜在的问题,是有好处的。
因此,我考虑的是,像 short _short = 10 这样的语句,编译器是怎么处理的,是不做溢出检查的直接生成IL代码(如此则代码存在溢出隐患),还是生成在IL代码中做溢出检查的IL代码(如此则有性能损失)。当然,最后我搞明白的是,这两者都不是,编译器在编译过程中做溢出检查,最后的IL代码是不做溢出检查的,这样,就即没有溢出隐患,也不会有性能损失(这个结论才是我最后需要的,而不是我不懂汇编,没有从机器的角度思考问题,实际上,我用80*86汇编写过完整的代码,怎么可能会不知道汇编)。
在没有做上面测试前,我问你,short _short1 = 10; 与 short _short2 = (short)10; 这两句,哪句性能更好,哪句安全性更高(或者说隐患更少),你会怎么回答。
实际结论是,都一样。
re: 关于枚举的双语显示问题。 中华小鹰 2008-03-27 17:57
嗯。看了,也理解了。
我又想到了一个问题,有时候一个ComboBox中供选择的枚举值并不是某个枚举的所有枚举值,而只是一部份,这样的话就不能直接
this.comboBox1.DataSource = new EnumDataSource2<Sex>();
而需要手动构造你的EnumAdapt类。
我觉得可以为EnumDataSource添加一个构造方法
public EnumDataSource2(params EnumType[] @enums)
{
if (enums == null || enums.Length <= 0)
throw new ArgumentException();
foreach (EnumType value in enums)
{
base.Add(new EnumAdapter(value));
}
}
以满足这个需求
re: 关于枚举的双语显示问题。 中华小鹰 2008-03-26 13:28
to 腊八粥
我明白你的方案了,其实你的方案并不比我的简单,而且,我个人觉得你的方案并不能实现多语显示(除非做两个版本)
你也使用了一个PropertyItem类作为绑定源,这跟我使用EnumValueStringPair几乎一模一样,不一样的是,你是直接硬编码返回显示值,而我是从资源中读取而已。因此,我的方案可以在不更改源代码的情况下添加新的语种(只要添加新的语种的资源),你的恐怕就不行了。
ComboBox在没有设置“DisplayMember“这个属性时,显示值是直接调用对象的ToString()方法,在没有设置“ValueMember”时,属性SelectValue的值也正是对象本身,你正是用了这两点。我觉得设置“DisplayMember" 与"ValueMember“是一种更好的方案。