草庐IT

不可避免

全部标签

c# - SqlConnection 并避免升级到 MSDTC

当我们需要在我们的应用程序中进行数据库访问时,我们使用以下模式:为了查询,我们有一个带有方法CreateOpenConnection的静态工厂类这只不过是newSqlConnection(myConnectionString)并调用Open()在上面。在我们执行查询之前调用此方法,并在查询返回后释放连接。对于插入/更新/删除,我们使用工作单元模式,在这种模式下,更改被分批处理并通过调用work.Commit()提交到数据库。像这样:工作.提交:using(vartranScope=newTransactionScope(TransactionScopeOption.RequiresNe

c# - LINQ 和 Entity Framework - 避免子查询

我真的很难在我的应用程序中调整我的EntityFramework生成的查询之一。这是非常基本的查询,但出于某种原因,EF使用多个内部子查询,这似乎在DB中执行得很糟糕,而不是使用连接。这是我的LINQ代码:Projects.Select(proj=>newProjectViewModel(){Name=proj.Name,Id=proj.Id,Total=proj.Subvalue.Where(subv=>subv.Created>=startDate&&subv.Createdc.SubValueSum).DefaultIfEmpty().Sum()}).OrderByDescend

c# - 使用 IReadOnlyCollection<T> 而不是 IEnumerable<T> 作为参数以避免可能的多重枚举

我的问题与thisone有关关于IEnumerable的使用对比IReadOnlyCollection.我也一直使用IEnumerable将集合公开为返回类型和参数,因为它受益于不可变和延迟执行。但是,我越来越担心我的代码中必须枚举参数以避免ReSharper可能给出的多重枚举警告的地方的激增。我理解ReSharper为什么建议这样做,并且我同意它建议的代码(如下)以确保封装(即,不假设调用者)。Foo[]arr=colasFoo[]??col.ToArray();但是,我发现此代码的重复性具有污染性,并且我同意一些消息来源的观点IReadOnlyCollection是一个更好的选择,

c# - 避免 resx 文件中的合并冲突

在我们的C#MVC项目中,我们将可本地化的字符串存储在.resx文件中。每次我们添加一个新的字符串,VisualStudio都会把它放在文件的底部,这意味着如果在不同的分支中添加两个字符串,那么我们将遇到合并冲突,因为两个不同的代码块被添加到同一个地方。我们如何减少合并冲突?按字母顺序对字符串进行排序可能会有所帮助,但我不知道该怎么做。或者我们可以告诉git处理每个...标记为独立block?我们目前正在使用git,但在使用TFS/TFVC时遇到了同样的问题。 最佳答案 我们发现了ResXManagerVisualStudio扩展,

c# - LDAP 服务器不可用

我是新手尝试使用PrincipalContext连接到ldap服务器。我已经尝试了该站点上的所有解决方案,但均无济于事。我尝试过的事情:PrincipalContextinsPrincipalContext=newPrincipalContext(ContextType.Domain);PrincipalContextinsPrincipalContext=newPrincipalContext(ContextType.Domain,"ldap://localhost:389/dc=maxcrc,dc=com");PrincipalContextinsPrincipalContext=

c# - SQL Server CE 4 DataProvider 在服务器资源管理器中不可用

我已经为visualstudio2010安装了sp1,并安装了sqlserverce4runtime。但是仍然无法使用标准数据提供程序创建到sqlce数据库的连接。这就是我的“选择数据提供者”对话框现在的样子。附言不知道这是否重要,但我已经使用针对.Net4.0的控制台应用程序和winforms应用程序对此进行了测试 最佳答案 您必须通过WebPI安装SQLServerCompact4工具,如下所述:http://erikej.blogspot.com/2010/12/visual-studio-tools-for-sql-serv

c# - Dictionary.ElementAt 方法在某些类中可见,但在其他类中不可见

我有一个字典,我需要遍历其中的元素并进行更改。我不能使用foreach语句,因为它有时会抛出InvalidOperationException,表示在枚举期间无法修改集合。我可以使用for循环,结合Dictionary.ElementAt方法,我在其他类中成功使用它,但是在这个特定的类中,找不到ElementAt方法!有什么想法吗? 最佳答案 ElementAt是一个extensionmethod在System.Linq.Enumerable中定义.您需要添加一个using子句以使其可见:usingSystem.Linq;请注意,D

c# - 为什么处理 StreamReader 会使流不可读?

这个问题在这里已经有了答案:CanyoukeepaStreamReaderfromdisposingtheunderlyingstream?(9个回答)关闭7年前。我需要从头到尾读取流两次。但是下面的代码抛出一个ObjectDisposedException:Cannotaccessaclosedfile异常。stringfileToReadPath=@"";using(FileStreamfs=newFileStream(fileToReadPath,FileMode.Open)){using(StreamReaderreader=newStreamReader(fs)){strin

c# - ConfigurationManager 类不可用

我无法从App.Config文件中获取connectionString..我错过了什么吗?创建类(class)后,我将类(class)移到了某个文件夹中。这是问题所在吗?不移动类的解决方案是什么? 最佳答案 添加对System.Configuration.dll的引用。菜单栏->项目->添加引用...->.NET(选项卡)->System.Configuration->确定 关于c#-ConfigurationManager类不可用,我们在StackOverflow上找到一个类似的问题:

c# - 我应该避免使用依赖注入(inject)和 IoC 吗?

在我的中型项目中,我为存储库、服务等使用了静态类,它实际上工作得很好,即使大多数程序员的期望相反。我的代码库非常紧凑、干净且易于理解。现在我尝试重写所有内容并使用IoC(控制反转),但我非常失望。我必须在每个类、Controller等中手动初始化许多依赖项,为接口(interface)添加更多项目等等。我真的没有看到我的项目有任何好处,而且似乎它造成的问题多于解决的问题。我在IoC/DI中发现了以下缺点:更大的代码量馄饨代码而不是意大利面条代码性能较慢,即使我要调用的方法只有一个依赖项,也需要在构造函数中初始化所有依赖项不使用IDE时更难理解一些错误被推送到运行时添加额外的依赖(DI框