2017-01-16 103 views
1

我正在使用EntityFramework 6.1.3。我已经从现有的数据库中生成模型。现在,当试图查询数据库时,datacontext返回null。数据库似乎是空的。实体框架不返回数据

但数据库不是空的,因为我可以使用LINQPad进行连接和查询。当用谷歌搜索这个问题时,我遇到了类似的情况。在这种情况下,EF在本地服务器上生成一个空数据库,解决方案是调整连接字符串,尽管没有明确的细节究竟应该改变什么。

但是,我不确定这是否属于我的情况。

  1. 我的连接字符串指向远程服务器。
  2. 数据库不可能在远程服务器上创建,因为我们没有授权。
  3. 数据库没有在我的本地机器上创建,因为我甚至没有安装本地sql server。我的AppData文件夹是空的。

有什么建议吗? 生成的连接字符串下面

 <add name="MAST_DEV" connectionString="metadata=res://*/Models.Mast_DevModel.csdl|res://*/Models.Mast_DevModel.ssdl|res://*/Models.Mast_DevModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=xxxxxx;initial catalog=MASTER_DEV;user id=xxxxx;password=xxxxxx;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
+1

第一步可能是:尝试连接Sql Server Management Studio,并查看该连接字符串是否与您正在使用的连接字符串相匹配。 –

+0

是的,我可以连接。我绝对确定所有凭据和服务名称都是正确的。我也使用相同的查询,所以它不是enumerator的错误或类似的错误 – mirosz

回答

1

我真的不知道我在做什么错。我从零开始创建了简单的项目,再次生成模型,现在它工作正常。可能的是,之前我从实体数据模型向导中选择了“从数据库中首先编码”。而这次是'来自数据库的EF Designer'。无论如何,感谢您的帮助。这是我的错

+0

你的错误是什么? –

0

这是我的问题的精确解(答案就是从这里Entity Framework cant use the DbContext, model being created复制)

“我看你使用的是带有模板(.TT)的EDMX生成的类。但是,如果您将从现有数据库获取信息,向导将创建与ObjectContext兼容的ConnectionString(元数据信息和entityframework的提供者)

问题是您使用的连接字符串是ObjectContext(数据库优先和模型优先)。对于DbContext,您应该使用没有元数据信息的连接字符串“