草庐IT

--add-opens

全部标签

c# - 使用带有 connection.open 的语句

我正在查看一些代码并与同事讨论。特别是一段看起来像这样的代码。[Test]publicvoidTestNormalWay(){using(varcn=GetConnection()){cn.Open();//dostuff}}问题来了:"whynotmovethecn.OpenintotheGetConnectionmethod."我说过,如果“打开”抛出异常,则不会调用处置。他的回答是"Sowhat.Theconnectionwasn'topenedsowhywoulditneedtogetclosed(ordisposed)?"对我来说,这只是我不想知道是否需要处理/关闭的问题,所

c# - 带有 Attach() 的 LINQ To SQL 异常 : Cannot add an entity with a key that is already in use

考虑这个典型的断开连接的场景:使用LINQToSQL从SQLServer加载客户对象用户编辑实体,表示层发回修改后的实体。数据层,使用L2S,必须将更改发送到SQLServer考虑这个LINQToSQL查询,其目的是获取客户实体。CustcustOrig=db.Custs.SingleOrDefault(o=>o.ID==c.ID);//gettheoriginaldb.Custs.Attach(c,custOrig);//wedon'thaveaTimeStamp=Truepropertydb.SubmitChanges();DuplicateKeyException:Cannota

c# - IDbSet.Add 和 DbEntityEntry.State = EntityState.Added 有什么区别?

在EF4.1+中,这两行代码之间有区别吗?dbContext.SomeEntitySet.Add(entityInstance);dbContext.Entry(entityInstance).State=EntityState.Added;或者他们做同样的事情?我想知道一个是否会以不同于另一个的方式影响子集合/导航属性。 最佳答案 当您使用dbContext.SomeEntitySet.Add(entityInstance);时,此及其所有相关实体/集合的状态设置为已添加,而dbContext.Entry(entityInstan

c# - EF4 代码优先 : how to add a relationship without adding a navigation property

我应该如何在不使用任何导航属性的情况下使用CodeFirst来定义关系?之前,我通过在关系的两端使用导航属性来定义一对多和多对多。并在数据库中创建适当的关系。这是类外观的精简版本(为简单起见,我已将多对多关系转换为一对多)。publicclassUser{publicstringUserId{get;set;}publicstringPasswordHash{get;set;}publicboolIsDisabled{get;set;}publicDateTimeAccessExpiryDate{get;set;}publicboolMustChangePassword{get;set

c# - 如何显示 "Open with"文件对话框?

有什么简单的方法可以打开“打开方式”文件对话框吗? 最佳答案 一些使用ProcExp的逆向工程揭示了一个rundll32.exe命令行是有效的。这是一个使用它的示例程序:usingSystem;usingSystem.Diagnostics;usingSystem.IO;classProgram{staticvoidMain(string[]args){ShowOpenWithDialog(@"c:\temp\test.txt");}publicstaticvoidShowOpenWithDialog(stringpath){var

c# - 为什么 Interlocked.Add() 方法必须返回一个值?

publicstaticintAdd(refintlocation1,intvalue)我试图在多线程场景中使用Interlocked.Add(refintlocation1,intvalue)方法以原子方式添加到数字。但是我对自己有一个疑问:为什么该方法再次返回location1值?相反,我们可以直接使用作为“ref”传递的变量。下面是一些伪代码:inta=6;intb=7;//somethingelseInterlocked.Add(refa,b);//Usethevariable'a'here. 最佳答案 因为变量refa可能

c# - 如何更改 'Add or Remove Programs'中的图标

我正在尝试将添加或删除程序中的图标设置为与我的应用程序图标相同。我的图标存储在我的解决方案的应用程序文件夹中。我在SourceForge上阅读您必须编辑ARPPRODUCTICON属性。在Windows窗体中如何/在何处执行此操作? 最佳答案 我找到了一个非常简单的解决方案。在您的部署项目的属性下,单击“AddRemoveProgram”并浏览您的文件。我建议将应用程序的图标放在应用程序文件夹中。 关于c#-如何更改'AddorRemovePrograms'中的图标,我们在StackOv

c# - VS2010 : Warning on add project reference to Silverlight project from . 网络项目

在VS2010、Silverlight4、.NET4中,我有一个WCF服务和一个Silverlight应用程序,Silverlight不是通过添加服务引用而是通过共享契约(Contract)访问类。自然地,这意味着我在Silverlight类库中有契约(Contract),并且该服务有对该库的项目引用。奇怪的是,这会导致引用上出现/!\图标和警告:无法引用项目“SilverlightClassLibrary1”。引用的项目针对不同的框架系列(Silverlight)但是,引用工作正常(我可以在我的Silverlight应用程序中使用该界面)并且构建良好。这是一个错误吗?我的猜测是肯定的

c# - 过滤掉 Type.GetMethods() 返回的自动生成的方法(getter/setter/add/remove/.etc)

我使用Type.GetMethods(BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic)检索给定类型的方法数组。问题是返回的MethodInfo可能包含编译器生成的方法,而我不想要这些方法。例如:propertyboolEnabled{get;将得到boolget_Enabled()事件SomethingChanged会得到add_SomethingChanged(事件处理程序)和remove_SomethingChanged(事件处理程序)我或许可以添加一些过滤逻辑

c# - MemoryCache.Add 返回 true 但不将项目添加到缓存

我正在尝试使用如下所示的Add方法将项目添加到MemoryCache.Default实例:boolresult=MemoryCache.Default.Add(cacheKey,dataToCache,cacheItemPolicy)result的值为true,表示该项目已添加到缓存中,但当我尝试立即检索它时,缓存为空。我还尝试使用Set方法添加项目,结果是空缓存。缓存有默认的99Mb内存限制,因此不会出现没有空间添加新项目的情况。有什么想法吗?privatestaticvoidInsertCachedData(stringcacheKey,objectdataToCache,stri