草庐IT

csharp-multi-threaded-server-sock

全部标签

c# - SQL Server : ADO.Net GetUpdateCommand ok with PK,在添加另一个聚集唯一索引后失败

我有这样一个带有非聚集主键的表:CREATETABLE[dbo].[StudentGrade]([EnrollmentID][int]IDENTITY(1,1)NOTNULL,[CourseID][nvarchar](10)NOTNULL,[StudentID][int]NOTNULL,[Grade][decimal](3,2)NOTNULL,CONSTRAINT[PK_StudentGrade]PRIMARYKEYNONCLUSTERED([EnrollmentID]ASC))选择语句是:selectEnrollmentID,GradefromStudentGradeGetUpdat

c# - 使用 DbContext 和 TenantId 的 Multi-Tenancy - 拦截器、过滤器、EF 代码优先

我的组织需要共享数据库、共享架构Multi-Tenancy数据库。我们将根据TenantId进行查询。我们将拥有很少的租户(少于10个),并且所有租户都将共享相同的数据库模式,不支持特定于租户的更改或功能。租户元数据将存储在内存中,而不是数据库(静态成员)中。这意味着所有实体现在都需要一个TenantId,并且DbContext需要知道默认情况下对此进行过滤。TenantId可能由header值或原始域标识,除非有更可取的方法。我已经看到各种利用拦截器的示例,但还没有看到关于TenantId实现的明确示例。我们需要解决的问题:我们如何修改当前架构以支持此功能(我认为很简单,只需添加Te

c# - 为什么 Thread 不实现 IDisposable?

我注意到System.Threading.Thread实现了终结器而不是IDisposable。推荐的做法是在实现终结器时始终实现IDisposable。杰弗里·里希特wrote该准则“非常重要,应始终无一异常(exception)地遵守”。那么为什么Thread不实现IDisposable?看起来实现IDisposable将是一个不间断的更改,它将允许确定性地清理Thread的可终结资源。还有一个相关的问题:由于线程是可终结的,我是否必须保留对正在运行的线程的引用以防止它们在执行期间被终结? 最佳答案 处理Thread对象会做什么

c# - 使用 SmtpClient 发送电子邮件时的故障排除 "Mailbox unavailable. The server response was: Access denied - Invalid HELO name"

我一直在尝试通过C#发送电子邮件。我在Google上搜索了各种示例,并从每个示例和每个人最有可能使用的标准代码中提取了点点滴滴。stringto="receiver@domain.com";stringfrom="sender@domain.com";stringsubject="HelloWorld!";stringbody="HelloBody!";MailMessagemessage=newMailMessage(from,to,subject,body);SmtpClientclient=newSmtpClient("smtp.domain.com");client.Crede

c# - 如何制作从 C# "Thread-safe"调用的 C (P/invoke) 代码

我有一些使用单个全局变量的简单C代码。显然这不是线程安全的,所以当我在C#中使用P/invoke从多个线程调用它时,事情就搞砸了。如何为每个线程单独导入此函数,或使其成为线程安全的?我尝试声明变量__declspec(thread),但这导致程序崩溃。我还尝试制作一个C++/CLI类,但它不允许成员函数是__declspec(naked),我需要(我正在使用内联汇编)。我在编写多线程C++代码方面经验不足,因此可能缺少某些内容。下面是一些示例代码:C#[DllImport("MyDll.dll",CallingConvention=CallingConvention.Cdecl)]pu

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# - 使用 SimpleMembership/Sql Server CE、MongoDB 管理用户配置文件

我选择使用mongodb作为以域为中心的数据的存储。我一直在寻找官方mongodb提供程序,将它们集成到ASP.NETMVC项目中,以保留单个应用程序数据库。没有官方供应商,可用的供应商看起来也不成熟/稳定。所以我决定按原样使用简单的成员资格。如果可能,如何从AccountController中删除EntityFramework特定代码?您将如何管理同时具有SimpleMembershipUserProfile和MongoDBUser的用户配置文件?示例在单独的程序集[project-name].domain中有两个类:publicclassEvent{publicDateTimeSc

c# - 使用 Linq-to-sql 在 sql-server 中存储枚举

如何使用linq-to-sql在sql-server中存储枚举?我最终在我的代码中进行了大量的int转换。一定有更好的方法。我错过了什么?sqlItem.enumValue=(int)myEnumValue;...myEnumValue=(MyEnumType)sqlItem.enumValueSQLServer或LINQ在数据库中将值存储为字符串还是整数并不重要,我只是想避免所有这些散布在我的代码中的类型转换。是否可以通过我的linq-to-sql-classes的扩展方法来解决?如果可以,那会是什么样子? 最佳答案 您可以在DB

c# - SSDT SQL Server 调试不会命中 CLR 断点

我应用了SQLServerDataToolspatch到VisualStudio2012(Premium)并在C#中创建了一个SQLServerCLR用户定义函数项目:publicpartialclassUserDefinedFunctions{[Microsoft.SqlServer.Server.SqlFunction]publicstaticSqlInt32Add42(SqlInt32in_param){SqlInt32retval=in_param+42;//Setbreakpointhere.returnretval;}}在SQLServer对象资源管理器Pane中,我右键单

C# - 线程中止异常(Thread Abort Exception)重新抛出自身

我有当前代码:classProgram{privatestaticvoidMain(){while(true){try{Thread.CurrentThread.Abort();}catch(ThreadAbortException){Console.WriteLine("Abort!");Thread.ResetAbort();}Console.WriteLine("nowwaiting");Console.ReadKey();}}}现在我知道ResetAbort方法应该可以防止ThreadAbortException继续重新抛出自身,即使catch语句正在捕获它,但我的问题是:如果