使用Active directory帐户将C#应用程序连接到Azure SQL server数据库的最简单方法是什么



我正在尝试使用Active directory密码连接到Azure SQL Server。根据我读到的内容,我需要使用我的Active directory域的userId和它的密码来构建我的连接字符串:

SqlConnectionStringBuilder nuevaCadena = new SqlConnectionStringBuilder();
nuevaCadena.DataSource = "***.database.windows.net";
nuevaCadena.InitialCatalog = "dbname";
nuevaCadena.PersistSecurityInfo = false;
nuevaCadena.UserID = "my_email_registered_on-the-domain";
nuevaCadena.Password = "my-password";
nuevaCadena.MultipleActiveResultSets = false;
nuevaCadena.Encrypt = true;
nuevaCadena.TrustServerCertificate = false;
nuevaCadena.Authentication =     SqlAuthenticationMethod.ActiveDirectoryPassword;
conexionBase = nuevaCadena.ToString();
EntityConnectionStringBuilder entityBuilder =
new EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";
entityBuilder.ProviderConnectionString = conexionBase;
entityBuilder.Metadata = "metadata=res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl";

上下文是实例化的,但当我尝试查询一些数据时:return context.motorizado.ToList((;

我收到以下错误消息:

"在>EntityFramework.dll中发生类型为"System.Data.Entity.Core.MetadataException"的异常,但未在用户代码中处理附加信息:至少有一个输入路径无效,因为>它太长或格式不正确。">

entityBuilder.Metadata的格式似乎错误。

试试这个:

entityBuilder.Metadata = @"res://*/Models.Model1.csdl|res://*/Models.Model1.ssdl|res://*/Models.Model1.msl";

以下是我对此的输入:

正如@Allen所提到的,它似乎是错误的格式,你可以尝试以下内容:

**cbuilder.Metadata = @"res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl";**

此外,请考虑将连接信息移到配置文件中,而不是在代码文件中构建它。

你可以查看下面的博客了解更多提示:

https://www.c-sharpcorner.com/blogs/metadata-exception-in-entity-framework-connection-strings1

希望能有所帮助。

相关内容

最新更新