草庐IT

MyBatis动态SQL

全部标签

c# - 是否有将 T-SQL 存储过程转换为 C# 的工具?

关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。去年关闭。Improvethisquestion2017年更新:实际上,答案是不,即使有,您也应该非常谨慎地使用它.实际上只有两种方法可以解决这个问题:a)咬紧牙关,手动和煞费苦心地转换所有内容,并使用某种验证方法来检查一切是否继续按预期运行,例如单元/回归测试。使用Linqer之类的工具(如果可用)作为帮助来解决部分问题。b)从头开始​​。没有选项c)可以让其他东西整齐和自动地处理所有事情,并且它不可能涵盖所有情况。有很多T-SQL可

c# - 模拟 Excel.worksheet 时如何避免使用动态?

我正在尝试使用NSubstitute或其他模拟框架和MSTest(VisualStudio2010)模拟Excel电子表格。我不确定是否有比这更好的方法——这对测试来说不太有效:这是一个例子(现在都是原型(prototype)代码,不是很干净):int[]lowerBounds={1,1};int[]lengths={2,2};//Initializea1-basedarraylikeExceldoes:object[,]values=(object[,])Array.CreateInstance(typeof(object),lengths,lowerBounds);values[1

c# - 当 dbContext 带有 'using' block 时,如何从 Linq 返回 IQueryable 到 SQL 查询?

我一直在使用“使用”block进行编码,但我想知道我是否可以从以下返回一个IQueryable而无需在我访问它之前处理该对象。publicIQueryableGetContacts(stringclientID){using(dbDataContextdb=newdbDataContext()){varcontacts=from_contactsindb.Contactswhere_contacts.ClientID==clientIDorderby_contacts.LastNameascendingselect_contacts;returncontacts;}}我是简单地删除“u

c# - 将数据从 Sql Server 推送到桌面应用程序

我有一个用c#编写的非常简单的.net4桌面应用程序,它需要显示一些插入到SQLServer(2005)表中的数据。数据本身很简单,只有一行大约10列,(主要是其他数据的计数)。我可以每隔x间隔从应用程序中轮询sqlserver,但我更喜欢让sqlserver在可能的情况下将数据推送到该应用程序,因为“新数据”的时间通常是不规则的。简而言之,我想知道这是否可能。在发布这个问题之前做了一些研究,我发现了一些可能性。1)SignalR:我找到了this这个问题看起来很有希望,但这似乎是在网络应用程序而不是桌面应用程序的上下文中。在查看signalRwiki时,我觉得它需要某种网络服务或其他

c# - Linq To SQL 选择动态列

是否可以动态限制从LINQtoSQL查询返回的列数?我有一个包含50多个列的数据库SQLView。我的应用程序有一个包含50多个属性的域对象,每列一个。在我的winforms项目中,我将域对象列表绑定(bind)到网格。默认情况下,只有少数列可见,但用户可以打开/关闭任何列。用户提示网格加载时间太长。我捕获了LINQ生成的SQL查询,然后在SQLServerManagementStudio中执行它并验证了它的速度。如果我更改SQL语句,删除所有不可见的列,它几乎会立即运行。性能与查询中的列数直接相关。我想知道是否可以动态更改从LINQ生成的SQL查询返回的列数?例如,这是我的代码目前的

c# - 使用 T4 和 C# 在运行时编译动态代码

我在T4上阅读的使用TextTemplatingFilePreprocessor的文章展示了如何动态生成成为项目一部分并与项目一起编译的代码。是否可以使用T4生成在运行时编译、输出到dll、加载和执行的代码,并且所述代码可以访问与dll关联的常见可见性功能?如果是这样,请给我举个例子。我正在有效地尝试做与使用IL生成动态dll相同的事情,而不是使用C#。编辑我需要这个的具体情况很简单。我正在编写一个将消息路由到服务的消息路由器。服务可以是本地的或远程的。声明性脚本被编译成C#。动态部分是“这个服务是本地的还是远程的?”。输出C#相应更改。本地/远程的路由风格不同,因此具有动态特性。这是

c# - 使用 DataTable 插入或更新 SQL 表

首先,我不能使用任何存储过程或View。我知道这可能会适得其反,但这不是我的规则。我有一个DataTable,里面装满了数据。它具有我的SQL表的复制结构。ID-名称SQL表当前有一些数据,但我现在需要用DataTable的所有数据更新它。如果ID匹配,它需要更新SQl表,或者添加到它唯一的列表。有什么方法可以仅在我的WinForm应用程序中简单地执行此操作?到目前为止,我有:SqlConnectionsqlConn=newSqlConnection(ConnectionString);SqlDataAdapteradapter=newSqlDataAdapter(string.For

c# - 向 IList<T> 添加动态失败

在下面的代码示例中调用l.Add(s)和c.Add(s)是成功的,但是对于通用的IList失败了.varl=newList();dynamics="s";l.Add(s);varc=(ICollection)l;c.Add(s);vari=(IList)l;i.Add("s");//worksi.Add(s);//failshttps://dotnetfiddle.net/Xll2IfUnhandledException:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:Nooverloadformethod'Add'takes

c# - 如何对可以取消的 DataTable 操作执行 SQL 查询

我试着让标题尽可能具体。基本上我现在在后台工作线程中运行的是一些代码,如下所示:SqlConnectionconn=newSqlConnection(connstring);SqlCommandcmd=newSqlCommand(query,conn);conn.Open();SqlDataAdaptersda=newSqlDataAdapter(cmd);sda.Fill(Results);conn.Close();sda.Dispose();其中query是一个字符串,表示一个大的、耗时的查询,conn是连接对象。我现在的问题是我需要一个停止按钮。我开始意识到杀死后台工作人员将毫无

c# - 为什么在 C# 中动态表达式的周围类型没有静态解析?

在动态表达式dynamicx中,是否有原因/解释为什么周围的表达式(例如foo(x))也变得动态?考虑:staticstringfoo(objectx){}staticvoidMain(){dynamicx=null;foo(x);//foo(x)isadynamicexpression}我假设编译器可以解析(在编译时)调用foo(object)。但是,将鼠标悬停在foo(x)上会显示该类型是动态的。我可以通过指定帮助编译器进行推导:foo((object)x);但我认为dynamic表达式的类型是object。C#Reference确实说“未解析包含动态类型表达式的操作”,我的问题是