我刚刚发现,如果我从NHibernate会话中获取一个对象并更改对象的属性,NHibernate会在没有调用的情况下自动更新提交对象Session.Update(myObj)!
我可以看到这可能会有所帮助,但作为默认行为,它似乎很疯狂!
更新:我现在理解持久性无知,所以这种行为现在显然是首选.我会在这里留下这个令人尴尬的问题,希望能帮助其他亵渎用户.
我怎么能阻止这种情况发生?这是默认的NHibernate行为还是来自Fluent NHibernate的AutoPersistenceModel?
如果没有办法阻止这个,我该怎么办?除非我忽略了这一点,否则这种行为似乎会造成一个混乱.
我从2009年8月18日开始使用NHibernate 2.0.1.4和Fluent NHibernate构建
难道这家伙的权利与他的回答?
我还读过,重写事件监听器可能是解决这个问题的方法.但是,IDirtyCheckEventListener.OnDirtyCheck在这种情况下不会被调用.有谁知道我需要覆盖哪个监听器?
为了美学目的,我正在推出我自己的prompt()版本; 就视觉效果而言,它的表现相当不错,但我遇到了一个小问题:该函数的原生版本导致代码执行完全停止,直到处理完提示.
这是非常可爱的,这就是为什么下面的工作方式:
<script>
var c = prompt('Name?', '');
alert(c); // displays whatever the user entered
</script>
Run Code Online (Sandbox Code Playgroud)
然而,用我的方法,事情并不顺利.我正在使用对话框,输入框和"确定"按钮来收集用户的数据; 据我所知,数据收集工作完美; 也就是说,我确信在用户按下"确定"按钮后,我可以访问他们刚刚放入提示的数据.
但是,我不能找到一种方法让我的版本像本机版一样工作.那么,我的问题是:在你告诉它恢复之前,是否可以告诉JavaScript停止执行?
提前感谢您提供的任何和所有帮助.
是否可以将文件夹中的所有文件扩展名映射到特定的HttpHandler(假设它们的文件扩展名映射到IIS中的aspnet_isapi.dll)?
我已经将FLV扩展映射到IIS中的ASP.NET,并在我的Web应用程序中有一个名为Static的文件夹,其中包含以下文件:
索引文件是使用JW FLV Media Player播放FLV 的基本html页面.
在Web.Config中,在HttpHanders部分下,以下工作(加载FLV并成功播放):
<add verb="*" path="MyFile.flv" type="MyApp.PassthroughFileHandler, MyApp"/>
Run Code Online (Sandbox Code Playgroud)
但这不(视频无法加载):
<add verb="*" path="Static/*" type="MyApp.PassthroughFileHandler, MyApp"/>
Run Code Online (Sandbox Code Playgroud)
我尝试了各种组合,没有太多运气.
理想情况下,我希望能够让Static文件夹中的所有FLV都使用PassthroughFileHandler,而不必在web.config中单独指定每个文件名.
我创建了以下类:
[Guid("4469031d-23e0-483c-8566-ce978ccc9a6f")]
class MyGenericContianer<BasicType> : SomeOtherContainer
{
}
Run Code Online (Sandbox Code Playgroud)
这导致以下两个类具有相同的GUID:
MyGenericContianer<int> x;
MyGenericContianer<float> y;
Run Code Online (Sandbox Code Playgroud)
我需要每种特定类型都有自己的GUID.你会怎么做?
如何删除数据集的列?
有没有一种方法可以为我这样做:
rh.dsDetail = ds.Tables[0].Columns.Remove(
Run Code Online (Sandbox Code Playgroud)
或者像这样:
rh.dsDetail = ds.Tables[0].Columns.Remove( ds.Tables[0].Columns[1],ds.Tables[0].Columns[2])
Run Code Online (Sandbox Code Playgroud) 假设您要采用CMU的语音数据集输入,如下所示:
ABERRATION AE2 B ER0 EY1 SH AH0 N
ABERRATIONAL AE2 B ER0 EY1 SH AH0 N AH0 L
ABERRATIONS AE2 B ER0 EY1 SH AH0 N Z
ABERT AE1 B ER0 T
ABET AH0 B EH1 T
ABETTED AH0 B EH1 T IH0 D
ABETTING AH0 B EH1 T IH0 NG
ABEX EY1 B EH0 K S
ABEYANCE AH0 B EY1 AH0 N S
Run Code Online (Sandbox Code Playgroud)
(单词在左边,右边是一系列音素,在此处输入键)
您想将其用作机器学习系统的训练数据,该系统将使用新单词并猜测它们将如何用英语发音。
至少对我来说不是那么明显,因为没有固定大小的字母可以映射到音素。我觉得与马尔可夫链有关的事情可能是正确的方法。
你会怎么做?
我正在编写我的第一个WCF服务.我决定将服务作为一个DLL开始编写,然后将WCF的内容展开,这就是我现在所处的位置.
建筑师告诉我,我应该坚持使用我已经完成的消息对象的特定格式.但是我在我的消息对象中使用了Interfaces,复杂类型和列表.我要添加属性,我有点困惑.
这是我的代码的示例.
[ServiceContract]
public interface MyServiceContract
{
[OperationContract]
MyMethodResponseMessage MyMethod(MyMethodRequestMessage request);
}
public class MyService : MyServiceContract
{
public MyMethodResponseMessage MyMethod(MyMethodRequestMessage request)
{
//Do things
}
}
//Messages
[MessageContract]
public class MyMethodResponseMessage
{
[MessageBodyMember]
public MyMethodResponse Body { get; set; }
}
[DataContract]
public class MyMethodResponse
{
[DataMember]
public IMyComplexTypeItem { get; set; }
[DataMember]
public List<IMyComplexType> Items { get; set; }
[DataMember]
public bool Success { get; set; }
}
//DTO
public interface IMyComplexType
{
[DataMember]
string Identity …Run Code Online (Sandbox Code Playgroud) 每隔15-30分钟,Netbeans会显示一个" java.lang.OutOfMemoryError: PermGen space".从我从谷歌那里学到的东西,这似乎与一般的类加载器泄漏或内存泄漏有关.
不幸的是,我发现的所有建议都与应用程序服务器有关,我不知道它们是否适用于Netbeans.(我甚至不确定它是同一个问题)
这是我申请中的问题吗?我怎样才能找到来源?
文件系统是不稳定的.这意味着您不能相信一个操作的结果仍然对下一个操作有效,即使它是下一行代码.你不能只说if (some file exists and I have permissions for it) open the file,你不能说if (some file does not exist) create the file.您的if条件结果总是可能会在代码的两个部分之间发生变化.操作是截然不同的:不是原子的.
更糟糕的是,问题的本质意味着如果你想要进行这种检查,你可能已经担心或意识到你无法控制的东西很可能发生在文件上.开发环境的本质使得此事件在测试期间不太可能发生,并且很难再现.因此,您不仅会遇到错误,而且在测试时也不会显示错误.
因此,在正常情况下,最好的做法是甚至不尝试检查文件或目录是否存在.相反,将您的开发时间用于处理文件系统中的异常.无论如何,您必须处理这些异常,这样可以更好地利用您的资源.即使异常很慢,检查文件是否需要额外的磁盘访问,磁盘访问速度要慢得多.在另一个问题中,我甚至对这个效果有一个很好的答案.
但我有些疑惑.例如,在.Net中,如果确实总是如此,那么这些.Exists()方法首先不会出现在API中.还要考虑您希望程序需要创建文件的方案.想到的第一个例子是桌面应用程序.此应用程序将默认用户配置文件安装到其主目录,并且每个用户第一次启动应用程序时,它会将此文件复制到该用户的应用程序数据文件夹.它希望该文件在第一次启动时不存在.
那么什么时候可以提前检查文件的存在(或其他属性,如大小和权限)?是否期望在第一次尝试时失败而不是成功足够的经验法则?
c# ×3
.net ×1
architecture ×1
asp.net ×1
dataset ×1
execution ×1
filesystems ×1
generics ×1
httphandler ×1
java ×1
java-6 ×1
javascript ×1
logging ×1
netbeans ×1
netbeans6.5 ×1
nhibernate ×1
phonetics ×1
prompt ×1
wcf ×1