我们需要将使用C#和NUnit开发的单元测试工具迁移到在Red Hat Linux上运行的C++ .
我们希望尽量减少迁移工作.
我们正在阅读这样的资源:
http://gamesfromwithin.com/exploring-the-c-unit-testing-framework-jungle
但我们没有看到任何类似于NUnit的东西.
我即将启动一个数据库设计,它将简单地管理公司下的用户.
我的主要问题是
我应该根据公司创建表格吗?喜欢
users_company_0001
users_company_0002
users_company_0003
...
因为每个公司永远不会使用"其他"用户,并且不需要在所有user_company中对不同的表进行求和/计数(一个简单的方法JOIN
可以做到这一点,虽然它更昂贵(时间)它将起到主要图片的作用,这将永远不会被需要.
或者我应该创建一个users
表(50 x 25000)1 250 000个用户(并且还在增长).
我正在考虑第一个选项,但是,我不确定如何在这样的布局上使用Entity Framework ...我可能需要回到90年代并手动生成我的数据逻辑层.
它是对包含公司标识的商店程序的简单调用
你会建议什么?
系统应用程序将是ASP.NET(可能是MVC,我仍然试图解决这个问题,因为我所有的知识都是关于webforms的,虽然我看到Scott Hanselman MVC视频 - 接缝很容易 - 但我知道它不会那么容易问题将来临,我将花费更多时间来修复它们,以及Microsoft SQL.
下面提到的存储过程在创建时给出错误
Msg 156, Level 15, State 1, Procedure crosstab, Line 23
Incorrect syntax near the keyword 'pivot'.
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这个错误?
以下是脚本:
CREATE PROCEDURE crosstab
@select varchar(8000),
@sumfunc varchar(100),
@pivot varchar(100),
@table varchar(100)
AS
DECLARE @sql varchar(8000), @delim varchar(1)
SET NOCOUNT ON
SET ANSI_WARNINGS OFF
EXEC ('SELECT ' + @pivot + ' AS pivot INTO ##pivot FROM ' + @table + ' WHERE 1=2')
EXEC ('INSERT INTO ##pivot SELECT DISTINCT ' + @pivot + ' FROM ' + @table + ' WHERE ' …
Run Code Online (Sandbox Code Playgroud) 如果你必须使用SQL Server 2008构建一个圣经比例的关系数据仓库,你会使用外键来强制数据完整性,还是会使用其他方法?
我喜欢外键,因为你只需要将它们弄好一次,它们总是在那里保护完整性.我正在考虑去禁用,加载,启用路由.
有什么想法吗?
提前致谢.
sql-server database-design referential-integrity data-warehouse
我有一个例程,它将创建单独的表(Sql Server 2008)来存储我的应用程序生成的报告的结果(Asp.net 3.5).每个报告都需要自己的表,因为表的列会根据报告设置而有所不同.一个表将包含10-5,000行之间,很少超过10,000行.
以下使用规则适用:
知道这一点,是否有理由在表上创建PK索引列?这样做是否有助于以任何方式检索数据的性能,如果可以,这将超过插入数据时更新索引的额外负载(我知道10K记录的数量相对较少,但这个解决方案需要是能够扩展).
更新:以下是有关正在处理的数据的更多详细信息,这些信息将在每个报告的一个表的当前设计决策中进行:
我也怀疑有人声称每次报告运行时都必须创建一个新表.但是,考虑到每次运行报告时都可能需要不同的列(数量,名称和数据类型),我看不到一个很好的选择.
我能想到的另一件事是拥有一个ID列(标识ReportVersionID,对应于另一个表),ReferenceValues列(varchar字段,包含所有引用值,按指定顺序,由一些分隔符分隔)和NumericValues列(与ReferenceValues相同,但对于数字),然后当我检索结果时,将所有内容放入系统中的专用对象,根据定义的分隔符分隔值).这看起来更合适吗?
我需要知道sqlserver中的锁概念为什么要使用它?以及任何一个例子.是任何pdf或ppt请指定
我正在编写一个同步软件,它将在一个DB中进行所有更改并将它们同步到另一个DB.为此我在表格中添加了T
两列:
alter table T add LastUpdate rowversion, LastSync binary(8) not null default 0
Run Code Online (Sandbox Code Playgroud)
现在,我可以轻松选择自上次同步以来已更改的所有行:
select * from T where LastUpdate > LastSync
Run Code Online (Sandbox Code Playgroud)
但是在执行同步之后,我应该使两个字段相等.但是更新行也会更新时间戳,所以我必须这样做:
update T set LastSync=@@DBTS+1 where ID=@syncedId
Run Code Online (Sandbox Code Playgroud)
但我想知道 - 这总是有效吗?如果我读取了值,@@DBTS
然后另一个用户设法在我的行提交之前的某个地方插入/更新一行,该怎么办?这是冒险的代码吗?如果是的话 - 它怎么能变得更好?
sql-server timestamp rowversion race-condition database-concurrency
在发布这个问题之前,我已经在这个网站上阅读了几个答案:like this和this。每个人似乎都同意“c# 应用程序池针对对同一数据库的多次调用进行了优化”。
但是,如果我从池中获得连接,我仍然观察到显着的性能损失。这是我的基准:
private const string localConnString = "Data Source=(local);Integrated Security=SSPI;database=MyTest;Pooling=true";
[Test]
public void GetNewConnectionEveryTime()
{
var stopwatch = new Stopwatch();
stopwatch.Start();
for (var i = 0; i < 1000; i++)
{
using (var conn = new SqlConnection(localConnString))
{
conn.Open();
const string saveTrancount = "EXEC dbo.TestTran";
ExecuteSql(conn, saveTrancount);
}
}
stopwatch.Stop();
Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed);
//Time elapsed: 00:00:00.5576016
}
[Test]
public void ReuseOneConnection()
{
var stopwatch = new Stopwatch();
stopwatch.Start();
using (var conn = new …
Run Code Online (Sandbox Code Playgroud) 我正在调用以下代码:
public static void SendMessage(string sender, string recipient,string subject,string body)
{
var message = new MailMessage(sender, recipient, subject, body);
_smtpClient.Send(message);
}
Run Code Online (Sandbox Code Playgroud)
消息正文中有换行符,也就是Environment.NewLine,但是当我在Outlook中打开消息时,它们不在那里.我错过了什么?
是否可以在NpgSql连接字符串中指定ApplicationName?以下资源通常有帮助,但在这种情况下它什么也没说:Npgsql连接字符串
sql-server ×6
ado.net ×2
c#-4.0 ×2
sql ×2
c# ×1
c++ ×1
database ×1
dynamic-sql ×1
indexing ×1
linux ×1
npgsql ×1
nunit ×1
postgresql ×1
primary-key ×1
rowversion ×1
smtp ×1
t-sql ×1
timestamp ×1
unit-testing ×1