Tag: .net

LINQ to SQL:无法在LINQ查询中使用SQL Server UDF

我在做LINQ到Sql。 为了获得良好的性能,我正在尝试过滤SQL Server端本身的一些记录。 所以我想在我的数据库中使用用户定义的函数(UDF) GiveWordCount 。 基于这篇文章,我正在尝试在C#端使用该UDF。 声明一个虚函数体,以便C#代码可以编译: [Function(Name = “dbo.GiveWordCount”, IsComposable = true)] public static int GiveWordCount([Parameter(Name=”@inputValue”,DbType=”nvarchar(4000)”)]string inputValue) { throw new NotSupportedException(“Direct calls are not supported.”); } 然后我在LINQ查询中调用此函数,如下所示。 在最终SQL查询被触发到数据库之前,调用’GiveWordCount’函数应该由LINQ转换为Sql提供程序到等效的内置sql server函数。 相反,它会导致错误: 方法’Int32 GiveWordCount(System.String)’没有支持的SQL转换。 这是我的主要function: static void Main(string[] args) { DataContext dataContext = new DataContext(“data source=.;initial catalog=businessLinqToSql;integrated security=True;MultipleActiveResultSets=True”); Table customers = dataContext.GetTable(); IEnumerable b = […]

System.Windows.Forms.Keys.HasFlag行为奇怪

我有以下代码,旨在防止用户在备忘录文本编辑器中编写新行: private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData.HasFlag(Keys.Enter)) { e.SuppressKeyPress = true; } } 它确实阻止了插入Enter,但奇怪的是它也阻止了其他键的插入。 到目前为止,我们已经发现钥匙:’O’,’M’,’/’和’ – ‘也被“抓住”了。 更新:以下代码执行我需要的操作: private void m_commentMemoEdit_KeyDown(object sender, KeyEventArgs e) { if (e.KeyValue == (int)Keys.Return) { e.SuppressKeyPress = true; } } 但我仍然不明白以前的代码不起作用,这样做。 我查看了System.Windows.Forms.Keys枚举,但没有找到任何线索(虽然我必须说这是一个奇怪的构造枚举)。 谁能解释为什么会这样?

BindingList ListChanged事件

我有一个类的BindingList 设置为BindingSource的DataSource属性,该属性又设置为DataGridView的DataSource属性。 1.我的理解是,对列表的任何添加都将触发ListChanged事件,该事件将通过BindingSource传播,然后传播到DataGridView,DataGridView将更新自身以显示更改。 这将发生,因为事件已自动连接。 (是?) 当所有工作都在UI线程上完成时,这一切都很好,但是当从非UI线程创建和更改列表时,最终在更新网格时会发生跨线程exception。 我能理解为什么会这样,但是没有办法解决这个问题…… 2.我很难理解,我应该在哪里最好拦截ListChanged事件来尝试将内容整理到UI线程中? 我猜我需要一个UI线程的引用以某种方式帮助做到这一点? 我已经阅读了很多这方面的post/文章,但我很难挣扎,因为我不完全理解这里的工作机制。 一旦他们在列表中,我将永远不会更改任何项目,只添加它们,并最初清除列表。 (我使用的是.NET 2.0)

活动采购资源

寻找有关活动采购主题的有用讨论组,文章,成功案例,参考应用程序和工具(.Net)的一些建议。 我已经熟悉了: 福勒的文章: http : //martinfowler.com/eaaDev/EventSourcing.html Greg Young的文章(评论中已下载的文档): http : //codebetter.com/gregyoung/2010/02/20/why-use-event-sourcing/ Greg Young关于DDDD的优秀(草案)文章: http : //abdullin.com/storage/uploads/2010/04/2010-04-16_DDDD_Drafts_by_Greg_Young.pdf 还有什么我应该读书看的吗?

包含System.IO.Compression 时,当前上下文中不存在名称“ZipFile”

我目前正在运行.net 4.5版,我正在尝试使用它的“新”zip函数。我包括System.IO.Compression ,我正在尝试运行以下代码: using System.IO.Compression; string startPath = @”c:\example\start”; string zipPath = @”c:\example\result.zip”; string extractPath = @”c:\example\extract”; ZipFile.CreateFromDirectory(startPath, zipPath); ZipFile.ExtractToDirectory(zipPath, extractPath); 我得到的问题是The name ‘ZipFile does not exist in the current context 。 如果我已经在使用需要它的东西,我不知道它为什么不存在。

无法通过WCF中的构造函数初始化成员

我有一个CibilResponse类,它具有类类型的属性(TUEF类)。 我试图使用: CibilEnquiryEnq.Tuef.Version = “12”;分配值CibilEnquiryEnq.Tuef.Version = “12”; 但它抛出空引用错误。 我已经解决了这个错误,但是通过创建一个像这样的对象: CibilEnquiryEnq.Tuef = new CibilWcfService.TUEF(); 而不是通过构造函数。 ICIBIL.cs [ServiceContract] public interface ICIBIL { [OperationContract] string InsertCibil(CibilResponse cibilResponse); [OperationContract] string TestInsert(string testObj); [OperationContract] string GenerateEnquiry(CibilEnquiry testObj); } [DataContract] public class CibilEnquiry { [DataMember] public TUEF Tuef { get; set; } public CibilEnquiry() { this.Tuef = new TUEF(); } } […]

如何在SQL中检索给定StoredProcedure参数的.NET类型?

我正在SQL程序之上创建’通用’包装器,我可以解析所有必需参数的名称和sqltypes,但有没有办法如何获得它的’底层’.NET类型? 我的目标是做一些事情: SqlParameter param; object value; object correctParam = param.GetNETType().GetMethod(“Parse”, new Type[] { typeof(string) }).Invoke(value.ToString()); param.Value = correctParam; GetNETType是我需要的东西。 我知道它可以写成param.SqlDbType中的开关,但这是更短的方式,更短的注释代码意味着更低的维护:)

使用async / await模式在C#5中编写高度可伸缩的TCP / IP服务器?

我的任务是设计一个相当简单的TCP / IP服务器,它必须接受来自多个客户端的连接。 它需要用C#编写,我使用的是.NET 4.5。 也就是说,我不确定.NET 4.5中TCP / IP服务器/客户端可扩展性的当前“最先进”是什么。 我确实看到了这篇文章: 如何编写可扩展的基于Tcp / Ip的服务器 。 但这与.NET 2.0和3.5有关,并没有提到async / await模式。 我能够用“旧方式”编写服务器……但我想知道“新方式”是什么。 在Socket,TcpClient或TcpListener上使用新的Async方法在C#中创建可伸缩服务器的最佳方法是什么? 新的Async方法是否利用I / O完成端口? 滚动自己的Socket监听器是否更有效,或者TcpListener / TcpClient类现在相当不错? 编辑:其他问题。

使用WPF绘制数千个数据点的最佳方式?

我写了一个显示财务数据的图表。 当我使用PathGeometry以及PathFigure和LineSegment绘制不到10.000个点作为连接线时,性能很好。 但是现在我需要同时显示多达100.000点(没有滚动)并且已经非常慢,只有50.000点。 我在考虑StreamGeometry ,但我不确定,因为它与PathGeometry基本相同,它将信息作为字节流进行处理。 有没有人有想法让这更高效,或者有人甚至做过类似的事情? 编辑:这些数据点一旦绘制就不会改变,所以如果有潜在的优化,请告诉我(线段现在被冻结)。 编辑:我试过StreamGeometry。 由于某些原因,创建图形的时间更长,但这不是问题。 绘制所有点后在图表上绘制仍然与前一个方法一样慢。 我认为WPF处理的数据点太多了。 编辑:我已经进行了一些实验,我注意到通过将先前为double的坐标转换为int来改善性能,以防止WPF抗锯齿子像素线。 编辑:感谢所有建议减少线段数的回复。 对于阶梯线,我将它们降低到最多两倍的水平分辨率,对于简单的线条,最多将它们降低到水平分辨率,现在性能非常好。

在对象上实现更改跟踪的最佳方法是什么

我有一个包含5个属性的类。 如果任何值被分配给这些字段中的任何一个,则另一个值(例如IsDIrty)将改变为真。 public class Class1 { bool IsDIrty {get;set;} string Prop1 {get;set;} string Prop2 {get;set;} string Prop3 {get;set;} string Prop4 {get;set;} string Prop5 {get;set;} }