Rob*_*ean 7 .net entity-framework azure-sql-database
我正在使用Entity Framework(v4.0)连接到SQL Azure(我安装了March SDK),并InvalidOperationException在尝试查询表时获取.异常消息是Invalid attempt to read when no data is present.,并且堆栈跟踪清楚地显示,当它尝试获取列标题时,它在EF内部失败:
at System.Data.SqlClient.SqlDataReader.ReadColumnHeader(Int32 i)
at System.Data.SqlClient.SqlDataReader.IsDBNull(Int32 i)
at lambda_method(Closure , Shaper )
at System.Data.Common.Internal.Materialization.Coordinator`1.ReadNextElement(Shaper shaper)
at System.Data.Common.Internal.Materialization.Shaper`1.SimpleEnumerator.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Service.LoadSettings() in C:\Service.svc.cs
at SyncInvokeLoadSettings(Object , Object[] , Object[] )
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)
at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)
Run Code Online (Sandbox Code Playgroud)
这特别与第二个表中的列中的数据有关(下例中的设置).如果我查询另一个表(如下面示例中的用户)或排除查询该列,则此工作完全正常.代码示例:
using (var db = new DBEntities())
{
var users = (from u in db.Users
where u.PK == userid
select u).ToList();
if (users.Any())
{
var selectedUser = users.Single();
if (selectedUser.Password.Equals(passwordHash))
{
// ******************************
// * error is on the next line! *
// ******************************
var settings = (from s in db.Settings
where s.User == selectedUser.PK
select s).ToList();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试重新创建表,更改表名,列名和数据类型,但没有任何帮助.如果表是空的或者列包含"小"数据集然后它可以工作,但是当我在其中有一行"大"数据时它会失败!
对于小型和大型,我的意思是什么,它们对于SQL来说并不是非常小和大:
我可以确认这个问题与我早期处理上下文无关.
| 归档时间: |
|
| 查看次数: |
3501 次 |
| 最近记录: |