Sql server SQL Server+;CLR&x2B;EF 4和x2B;CF:是否可以全部通过代码启用CLR和部署CLR容器?

Sql server SQL Server+;CLR&x2B;EF 4和x2B;CF:是否可以全部通过代码启用CLR和部署CLR容器?,sql-server,entity-framework,deployment,ef-code-first,clr,Sql Server,Entity Framework,Deployment,Ef Code First,Clr,我使用的是SQLServer2012 RC0+EF4+MVC4。我的数据库的90%是使用EF的代码优先功能生成的 我将为正则表达式使用一些CLR函数,如本文和其他文章所述 正如我所说的,我首先使用EF代码,所以我利用这个功能,在第一次使用时创建db,并执行一些额外的SQL命令来创建索引、约束、SQL计算字段和SQL函数 这是首次使用“我的种子”功能的一个示例: public class mydbInitializer : DropCreateDatabaseIfModelChanges<T

我使用的是SQLServer2012 RC0+EF4+MVC4。我的数据库的90%是使用EF的代码优先功能生成的

我将为正则表达式使用一些CLR函数,如本文和其他文章所述

正如我所说的,我首先使用EF代码,所以我利用这个功能,在第一次使用时创建db,并执行一些额外的SQL命令来创建索引、约束、SQL计算字段和SQL函数

这是首次使用“我的种子”功能的一个示例:

public class mydbInitializer : DropCreateDatabaseIfModelChanges<TManagerContext>
   {
    protected override void Seed(mydbContext context)
    {
        try
        {
            context.Database.ExecuteSqlCommand("CREATE NONCLUSTERED INDEX IX_index1 ON table1 (field1)");
            context.Database.ExecuteSqlCommand("CREATE NONCLUSTERED INDEX IX_index2 ON table1 (field2)");
            ...
公共类mydbInitializer:DropCreateDatabaseIfModelChanges
{
受保护的覆盖无效种子(mydbContext上下文)
{
尝试
{
context.Database.ExecuteSqlCommand(“在表1(field1)上创建非聚集索引IX_index1”);
context.Database.ExecuteSqlCommand(“在表1(字段2)上创建非聚集索引IX_index2”);
...
//在这里,我将放一些代码在SQL Server上启用CLR,并将我的CLR函数部署到其中

我会将我的应用程序部署到不同的服务器上,因此我想知道是否有可能在第一次使用应用程序时启用CLR并部署CLR功能?出于安全原因,然后我会用不涉及创建或删除db的版本替换BIN

您认为这是一种错误的方法吗?我是否有必要使用SQL Management Studio?或者,您可以创建批处理以促进CLR及其BIN的集成

非常感谢你的帮助,很抱歉我的英语不好。
致以最诚挚的问候

是的,这是可能的。可以通过运行以下命令来启用SQLCLR:


要直接从代码将程序集加载到数据库中,请使用
从@bits;
创建程序集,并在@bits在程序集DLL流中传递时使用。您可以将SQLCLR程序集作为资源或依赖项添加到应用程序中,这两种方法都允许您检索程序集DLL流并将其作为@bits的参数传递。

是,这是可能的。可以通过运行以下命令来启用SQLCLR:


要直接从代码将程序集加载到数据库中,请使用
从@bits创建程序集;
并在@bits在程序集DLL流中传递时使用。您可以将SQLCLR程序集作为资源或依赖项添加到应用程序中,这两者都允许您检索程序集DLL流并将其作为@bits的参数传递。

谢谢非常感谢你的帮助。对不起,我的无知,我是一个初学者。我应该如何通过代码传递
exec
命令?请你提供一个更详细的示例?谢谢你的帮助!此外,如果我将其作为资源传递,DLL将被传输到服务器?THXTHX Remus。我按照你的建议进行了传递,并且可以正常工作。此外,我删除了导入的DLL以进行检查如果它是在db中导入的,它仍然可以工作。谢谢你的帮助!非常感谢Remus。对不起,我的无知,我是一个初学者。我应该如何通过代码传递
exec
命令?请你提供一个更详细的示例?谢谢你的帮助!而且,如果我将其作为资源传递,DLL随后会被传输到服务器?THXTHX Remus。我是id正如你建议的那样,它可以工作。此外,我删除了导入的dll以检查它是否在db中导入,并且它仍然可以工作。谢谢你的帮助!
exec sp_configure 'clr_enabled', 1;
reconfigure;