小编Sea*_*ean的帖子

SQL主键

因此,我和一位同事正在争论哪种方式更适合生成GUID的主键.

我们使用带有实体4的.NET 4.0并使用存储过程来进行选择/插入/更新.

他希望在代码中创建GUID主键,并使用Guid类或/和使用一些创建的Sequential GUID类将其作为插入的一部分传回.

我希望使用newid()或newsequentialid()在插入时由SQL Server创建GUID.

我反对他的方式的论点是,如果你必须进行多次插入,你必须进行往返以获得每个插入的guid,以便为外键约束维护该关系.另外,使用这种方式,您必须为每个插件进行几次往返.

他关于使用SQL做的论点是,在插入发生之前他无法访问密钥,并且必须等待插入才能使主键guid重新用于代码的其他部分.这样,您可以与存储过程建立一个连接,并处理所有插入.

那么,哪种方法更适合单个插入?哪种方法更适合事务中的多个插入?

t-sql sql-server asp.net primary-key-design

4
推荐指数
1
解决办法
454
查看次数

小巧玲珑的传递动态的参数

我目前正在为Dapper编写包装器.此包装器强制每个查询都是存储过程.

在我的包装器中,我正在调用Dapper(带问题):

public IEnumerable<T> Select<T>(string storedProcName, dynamic param) {
    IEnumerable<T> results;

    using(var connection = new SqlConnection(_connectionString) {
        results = connection.Query<T>(storedProcName, param, commandType: CommandType.StoredProcedure);
    }

    return results;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将"param"传递给Query时,它告诉我"无法解析符号查询".当我删除param pass时,它工作正常.

任何人都可以指出我正确的方向,以便我可以将动态参数(或类似的东西)传递给Dapper吗?

c# orm dapper

3
推荐指数
1
解决办法
2368
查看次数

Rails 5通过整数值获取枚举密钥

我有一个具有以下枚举的模型:

class User < ApplicationRecord
    enum user_type: [:api_user, :web_user]
end
Run Code Online (Sandbox Code Playgroud)

当它被保存到数据库中时,它会按预期使用整数值保存它.然后我有一个接受这样的枚举的函数(在控制器中):

do_something_useful(type: User.user_types[:web_user], user: user)

def do_something_useful(options)
    some_enum_value = options[:type]
    user = options[:user]

    # Not a practical example.  Just an example to demonstrate the issue.

    # Should return Hello, User! You are a web_user type.
    # But returns, Hello, User! You are a 1 type.
    'Hello, #{user.name}! You are a #{some_enum_value} type.'
end
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是选项[:type]传递整数值.我想通过整数获取User.user_type的键值.这可能吗?

再次感谢.

ruby-on-rails ruby-on-rails-5

3
推荐指数
1
解决办法
8427
查看次数

使用Enterprise Library 5.0数据访问问题

这可能是一个非常简单的问题,但或多或​​少,我要求这样,我可以围绕数据访问块如何打开和关闭连接.

首先,我使用了类似企业库的东西大约10年,并在实体等之间来回切换.

无论如何,当我使用Database类的CreateDatabase()函数时,这是否会立即打开与数据库的连接,还是在我使用ExecuteReader之类的实际调用时打开连接?

它如何处理关闭连接?在DAL中使用连接后,我是否必须明确调用连接?在完成Reader等操作后,企业库如何确保连接已关闭?

此外,打开和关闭连接的最佳做法是什么?如果CreateDatabase立即打开连接?有一小部分代码可以分享吗?

c# asp.net enterprise-library asp.net-mvc-3

1
推荐指数
1
解决办法
2727
查看次数