【发布时间】:2012-07-01 03:20:45
【问题描述】:
我在刷新模型的 foreach 循环期间遇到以下异常,因为它尝试枚举查询检索到的结果。我无法在互联网上的其他任何地方找到与此错误相关的任何内容。有人可以指出我做错了什么吗?
System.MissingMethodException 未处理
Message=找不到方法:'Void Raven.Abstractions.Data.IndexQuery.set_DefaultField(System.String)'。 Source=Raven.Client.Lightweight
堆栈跟踪:
在 Raven.Client.Document.AbstractDocumentQuery`2.GenerateIndexQuery(字符串查询)
在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Document\AbstractDocumentQuery.cs:399 行中的 Raven.Client.Document.AbstractDocumentQuery
2.InitializeQueryOperation(Action2 setOperationHeaders)在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Document\AbstractDocumentQuery.cs:line 434 中的 Raven.Client.Document.AbstractDocumentQuery`2.InitSync() 处
在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Document\AbstractDocumentQuery.cs:line 421 中的 Raven.Client.Document.AbstractDocumentQuery`2.get_QueryResult()
在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Linq\RavenQueryProviderProcessor.cs:1263 行中的 Raven.Client.Linq.RavenQueryProviderProcessor`1.ExecuteQueryTProjection
在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Linq\RavenQueryProviderProcessor.cs:1244 行中的 Raven.Client.Linq.RavenQueryProviderProcessor`1.Execute(表达式表达式)
在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Linq\RavenQueryProvider.cs:138 行中的 Raven.Client.Linq.RavenQueryProvider`1.Execute(表达式表达式)
在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Linq\RavenQueryProvider.cs:line 195 中的 Raven.Client.Linq.RavenQueryProvider`1.System.Linq.IQueryProvider.Execute(表达式表达式)
在 c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Linq\RavenQueryInspector.cs:line 97 中的 Raven.Client.Linq.RavenQueryInspector`1.GetEnumerator()
在 C:\AdminPanel\AdminPanel.xaml.cs:line 111 中的 AdminPanel.RefreshModel() 处
private void RefreshModel()
{
MainModel.Movies.Clear();
foreach (FriendlyName movie in App.Database.QueryAllMovies())
{
MainModel.Movies.Add(movie);
}
}
public IEnumerable<FriendlyName> QueryAllMovies()
{
using (var session = DocumentStore.OpenSession())
{
return session.Query<Movie, Movies_AsFriendlyName>().As<FriendlyName>();
}
}
class Movies_AsFriendlyName : AbstractIndexCreationTask<Movie>
{
public Movies_AsFriendlyName()
{
Map = movies => movies.Select(movie => new { Id = movie.Id, Name = movie.FileName });
TransformResults = (database, movies) => movies.Select(movie => new { Id = movie.Id, Name = movie.FileName });
}
}
public class FriendlyName
{
public string Name { get; set; }
public string Id { get; set; }
public FriendlyName(string id, string name)
{
Id = id;
Name = name;
}
public override string ToString()
{
return Name;
}
}
【问题讨论】: