我正在构建一个.NET断开连接的客户端 - 服务器应用程序,它使用Entity Framework 5(EF5)从POCO生成SQL Server CE 4.0数据库.该应用程序允许用户从网络SQL Server执行数据的批量复制到客户端的SQL Server CE数据库.由于EF5创建的约束和索引,这非常(非常)缓慢.暂时删除约束和索引会将30分钟的等待时间减少到1分钟或更短.
在开始批量复制之前,应用程序执行查询以从SQL Server CE表中删除约束和索引.但是,命令失败,因为EF5创建的约束名称包括表模式名称,点和表名称.由于解析问题,约束名称中的点导致drop命令失败.
例如,POCO 使用主键约束Customer创建表.数据库按预期执行.dbo.CustomerPK_dbo.Customer_Id
但是,在执行非查询时:
ALTER TABLE Customer DROP CONSTRAINT PK_dbo.Customer;
Run Code Online (Sandbox Code Playgroud)
SQL Server Compact ADO.NET数据提供程序返回错误:
解析查询时出错.
[令牌行号= 1,令牌行偏移= 57,令牌错误=.]
当然,使用DataContext没有外键的辅助对象生成没有约束的数据库,然后在以后添加它们的工作; 但是,这需要维护两个DataContext对象,并希望不要忘记保持更新.因此,我正在寻找两种解决方案之一:
以这样的方式编写DROP语句.字符被解析
防止EF5使用.约束和索引名称中的字符
预先感谢您的帮助!
是否可以使用除我自己以外的域用户凭据调试C#.NET 4应用程序,运行单元测试等?我有几个提升的权限,用户和/或服务帐户将不会拥有,并希望避免扭曲我的测试,并最终遭受"它适用于我的机器"综合症.
我特别想创建一个使用域服务帐户的SqlConnection对象,而不是我自己的帐户.我必须使用域帐户而不是SQL Server帐户,以允许SQL Server向其他硬件发出PEXEC调用.(听起来很有趣,是吗?)
我很惊讶运行调试/发布的选项,因为在解决方案/项目调试属性面板中尚未设置其他域用户.这似乎是有用的东西.当然,我了解安全风险,但您必须承认在许多情况下这将非常有用.
提前致谢!
我想使用Visual Studio 2010 Ultimate Load Test加载测试企业Web应用程序(我没有构建).我希望每个虚拟用户在开始时登录,并在他们的随机测试运行结束时注销.我可以正确配置负载测试.但是,有一个复杂的问题.会话密钥被注入URL,如下所示:
http://ProductName/(S(ilv3lp2yhbqdyr2tbcj5mout))/System/Container.aspx
Run Code Online (Sandbox Code Playgroud)
我将Visual Studio WebTests转换为编码测试,然后使用特定于会话的URL对代码进行改进.这很好用.我需要做的是将这个会话编码的URL保持在特定虚拟用户运行的各种测试中,从登录WebTest类开始,到logout WebTest类.
各个WebTest类能够在每个测试的开始和结束时登录和注销.但是,这不是正常使用的准确表示.此应用程序模拟大型机终端,并且永远不会切断Web浏览器请求之间的连接或会话.每个会话都是一个长的交互式HTTP请求,就像大型机终端与例如IBM AS400交互一样.Usert通常在一天开始时登录到大型机,并且(应该)在一天结束时注销.同样,此Web应用程序维护HTTP请求,直到用户注销,或IIS会话超时发生.因此,重要的是我在所有测试之间的URL中保持相同的会话,以确保内存泄漏和其他讨厌的错误不会累积.
请分享你的想法!
asp.net ×1
c# ×1
debugging ×1
load-testing ×1
poco ×1
sql ×1
sql-server ×1
testing ×1
webtest ×1