【问题标题】:How can i connect remote sql server by Entity Framework?如何通过实体框架连接远程 sql server?
【发布时间】:2010-07-30 07:23:28
【问题描述】:

我没有足够的数据库系统经验。我必须连接到远程 sql server 并在其上处理一些查询。如何通过实体框架连接远程服务器?

【问题讨论】:

  • 我只是新手。我不知道这件事是否通过连接字符串发生。在使用实体框架时,我什至从未见过连接字符串。所以我想学习它的基本步骤。
  • connectionstrings.com 阅读和学习。

标签: c# .net sql-server entity-framework


【解决方案1】:

1) 检查远程 sql server 是否允许远程连接

2) 在 Visual Studio 中使用实体框架向导(添加新连接)

【讨论】:

    【解决方案2】:

    与任何其他数据库连接工具一样:确保服务器和您与服务器之间的所有防火墙/代理服务器接受连接,然后为 EF 提供正确的连接字符串。

    但是,如果您只想处理一些 sql 查询,我建议您改用 SQL Server Management Studio。 Entity Framework 是 ORM,而不是数据库管理工具。

    【讨论】:

      【解决方案3】:

      这里我如何以编程方式(没有 xml/appconfig 文件)连接到远程服务器:

      1. 首先检查您的远程服务器参数是否正确。特别是必须打开一个端口。有关详细信息,请参阅此MSDN post
      2. 如下创建连接字符串(参见SqlConnectionStringBuilder):

        public static string GetRemoteConnectionString()
        {
            SqlConnectionStringBuilder sqlString = new SqlConnectionStringBuilder()
            {
              DataSource = $"{IP},{PORT}", // ex : 37.59.110.55,1433 
              InitialCatalog = "MyDatabaseName",  //Database
              IntegratedSecurity = false,
              MultipleActiveResultSets = true,
              ApplicationName = "EntityFramework",
              UserID = "MyUserId",
              Password = "MyPassword"
            };
            return sqlString.ToString();
        }
        
      3. 然后通过 DbContext 连接:

        public class MDBContext : DbContext
        {    
          public MDBContext () : base(GetRemoteConnectionString())
          {
          }
          ......
        }
        

      额外:

      • 您还可以轻松检查连接(在创建 DbContext 之前),如下所示:

               try
               {
                    using (SqlConnection con = new SqlConnection(GetRemoteConnectionString()))
                    {
                        con.Open();
                    }
                    success = true;
                }
                catch (Exception ex)
                {
                   success = false;
                    ...
                }
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-27
        • 2011-08-20
        • 2019-06-24
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多