我共享我的代码以连接到SQLSERVER:
public class Context:DbContext
{
private readonly IDbConn dbConn;
public Context()
{
dbConn = new DbConn();
}
public DbSet<table1> t1{ get; set; }
public DbSet<table2> t2{ get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(dbConn.Connection);
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<table1>().HasKey(x => new { x.column1, x.column2});
modelBuilder.Entity<table2>().HasKey(x => new { x.column1, x.column2});
}
}
public class DbConn : IDbConn
{
private SqlConnection sqlConnection;
public SqlConnection Connection
{
get
{
return new SqlConnection(@"SERVER=xxxxxxx;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");
}
}
}
public class Test
{
public static table1 GetFirst()
{
using (var context = new Context())
{
var cb = context.t1.FirstOrDefault(); //The error occurs here
return cb;
}
}
}
我是XAMARIN项目的初学者。 我尝试连接到SQLSERVER并尝试从数据库中获取一些数据,但是当我执行LINQ请求时,出现错误。我已经尝试更改connectionStrings,但仍然有相同的错误。 有人可以帮助我解决此错误。
谢谢
答案 0 :(得分:0)
我认为,如果您的sql server位于固定端口上,则只能说出它正在使用哪个端口。通常不需要标准端口
return new SqlConnection(@"Data Source=xxxxxxx,portnumberhere;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");
如果使用的是动态端口,通常需要提供实例名称。
return new SqlConnection(@"Data Source=xxxxxxx\myinstance;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");
检查是否没有防火墙阻止您与正在使用的服务器之间的通信,并且如消息所示,在某些情况下,您可能需要确保数据库服务器上的浏览器服务正在运行,尤其是在使用动态端口时。
编辑:
我认为问题可能出在您使用的地方
return new SqlConnection(@"SERVER=xxxxxxx;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");
代替
return new SqlConnection(@"Data Source=xxxxxxx;Initial Catalog=xxxxxxx;User ID=xxxxxx; Password=xxxxxx");