这个问题从我昨天问到的一个问题开始,这个问题为什么在我的实体上使用连接查询会产生极其复杂的SQL.似乎执行这样的查询:
var query = from ev in genesisContext.Events
join pe in genesisContext.People_Event_Link
on ev equals pe.Event
where pe.P_ID == key
select ev;
Run Code Online (Sandbox Code Playgroud)
产生了在数据库上运行需要18秒的可怕SQL,而通过where子句(有点像ANSI SQL之前的语法)加入实体只需不到一秒的时间来运行并产生相同的结果
var query = from pe in genesisContext.People_Event_Link
from ev in genesisContext.Events
where pe.P_ID == key && pe.Event == ev
select ev;
Run Code Online (Sandbox Code Playgroud)
我已经google了一遍,但仍然不明白为什么第二个产生不同的SQL到第一个.有人可以向我解释一下这个区别吗?我什么时候应该使用join关键字
这是我在查询中使用Join并运行18秒时生成的SQL:
SELECT
1 AS [C1],
[Extent1].[E_ID] AS [E_ID],
[Extent1].[E_START_DATE] AS [E_START_DATE],
[Extent1].[E_END_DATE] AS [E_END_DATE],
[Extent1].[E_COMMENTS] AS [E_COMMENTS],
[Extent1].[E_DATE_ADDED] AS [E_DATE_ADDED],
[Extent1].[E_RECORDED_BY] AS [E_RECORDED_BY],
[Extent1].[E_DATE_UPDATED] AS [E_DATE_UPDATED],
[Extent1].[E_UPDATED_BY] AS [E_UPDATED_BY],
[Extent1].[ET_ID] …Run Code Online (Sandbox Code Playgroud) 我们有两个班级说'父母'和'孩子',如下所示:
class Parent
{
parent_AddUser()
{
// add user code for parent
}
abstract child_AddUser();
}
// child class
class Child : Parent
{
child_AddUser() // implementing the abstract method
{
// child addUser code
}
}
Run Code Online (Sandbox Code Playgroud)
我们想知道无论何时调用child_addUser()而不进行显式调用,我们是否都可以强制调用parent_AddUser()方法.
Eclipse + Subversive插件
在提交与SVN不同步的目录时,会弹出一条消息:
Merge conflict during commit
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating
Run Code Online (Sandbox Code Playgroud)
试图从Eclipse Navigator视图更新整个项目(右键单击>刷新或F5),问题仍然存在.
在这种情况下有什么可以做的吗?
如何让Aptana识别.jspf文件?
我想对.jspf文件进行语法高亮显示.我确定要编辑一个preference/config选项或xml文件,但我找不到它.
我认为它与日食过程类似,所以我也在标记日食.如果不是,我会删除标签.
在旧的python版本中,当你在python中创建一个类时,它可以从对象继承,这是我理解的一个特殊的内置python元素,它允许你的对象成为一个新式的对象.
那么新版本(> 3.0和2.6)呢?我用google搜索了类对象,但是得到了很多结果(显而易见的原因).任何提示?
谢谢!
在Microsoft VC2005和g ++编译器中,以下结果都会导致错误:
在win32 VC2005上:sizeof(wchar_t)是2
wchar_t *foo = 0;
static_cast<unsigned short *>(foo);
Run Code Online (Sandbox Code Playgroud)
结果是
error C2440: 'static_cast' : cannot convert from 'wchar_t *' to 'unsigned short *' ...
Run Code Online (Sandbox Code Playgroud)
在Mac OS X或Linux上g ++:sizeof(wchar_t)为4
wchar_t *foo = 0;
static_cast<unsigned int *>(foo);
Run Code Online (Sandbox Code Playgroud)
结果是
error: invalid static_cast from type 'wchar_t*' to type 'unsigned int*'
Run Code Online (Sandbox Code Playgroud)
当然,我总是可以使用reinterpret_cast.但是,我想了解为什么编译器认为static_cast到适当的整数类型是非法的.我确信有充分的理由......
我目前正在尝试修改现有的GWT-Ext应用程序,即在其MySql数据库中使用纯文本密码.
我的计划是使用md5哈希,因为现有的密码可以通过MySql函数轻松更改,我期待为GWT-Ext方面找到一个简单的解决方案.但是正如我发现的那样,GWT不支持java.security,并且似乎没有任何其他实现可用于将密码字符串更改为客户端的md5哈希.
到目前为止,我发现只有"解决方案"是通过JSNI重新实现md5方法,如下所述:http: //groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/ad09475a9944c9f8
Ext-JS有一个现有的用户扩展,但我找不到GWT-Ext的任何内容:http://extjs.com/forum/showthread.php? p = 133516
有人知道更优雅/简单的方法来解决这个问题吗?也许我应该用别的东西而不是md5来确保密码加密?
干杯弗兰克
我是几个不同的Web技术堆栈中经验丰富的Web开发人员.我目前在.Net工作,我对Partial Postback感到好奇.
我理解Partial Postback的功能是什么以及如何以编程方式使用它,但我不喜欢使用我不理解的技术,如何实现Partial Postback.
我理解HTTP请求和异步请求,让我对Partial Postback感到困惑的是它似乎都是.
也许我只是遗漏了一些东西,但在我看来,Partial Request同时执行这两项操作,首先触发异步POST请求但浏览器似乎知道并且活动指示器开始旋转,这通常仅在HTTP请求页面期间发生渲染.
那么,任何人都可以了解微软如何在HTTP请求级别实现部分回发?
我们必须了解我们(或第三方,可能是CLR本身)代码的哪一部分导致整数拳击.
我们有一个相当大的应用程序,我们观察到System.Int32实例的高分配率.在Memory Profiler的帮助下,我们看到了少量长期存在的Int32实例(确切地说是18个)和Int32每秒20-25千个分配.所有这些对象都是GC收集为Gen0对象,系统没有内存泄漏,可以运行很长时间.创建内存快照时,GC会在快照之前执行,因此快照不包含这些"临时"对象的任何跟踪.
我们所有的代码都是专门为消除拳击而编写的,而且"按设计"我们根本不会看到拳击.因此我们怀疑它是我们的代码中的一些未消除的遗忘拳击,或由第三方组件和/或CLR类型本身引起的装箱.
系统使用VS2008编译,并使用.Net 3.5(测量在调试和发布版本中完成,具有相同的行为).
我们如何(使用windbg,VS2008,Memory Profiler,AQTime或任何其他商用产品)检测拳击发生的原因?