1

クエリによって取得された結果を列挙しようとすると、更新モデルの foreach ループ中に次の例外が発生します。インターネット上の他の場所で、このエラーに関連するものを見つけることができませんでした。誰かが私が間違っていることを指摘できますか?

System.MissingMethodException は処理されませんでした

Message=メソッドが見つかりません: 'Void Raven.Abstractions.Data.IndexQuery.set_DefaultField(System.String)'. ソース = Raven.Client.Lightweight

スタックトレース:

Raven.Client.Document.AbstractDocumentQuery`2.GenerateIndexQuery (文字列クエリ) で

2.InitializeQueryOperation(Actionc:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Document\AbstractDocumentQuery.cs:line 399の Raven.Client.Document.AbstractDocumentQuery 2 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:line 1263 の Raven.Client.Linq.RavenQueryProviderProcessor`1.ExecuteQueryTProjection で

Raven.Client.Linq.RavenQueryProviderProcessor`1.Execute(式式) c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Linq\RavenQueryProviderProcessor.cs:line 1244

c:\Builds\RavenDB-Stable\Raven.Client.Lightweight\Linq\RavenQueryProvider.cs:line 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;
    }
}
4

1 に答える 1

3

通常、このようなものがある場合、あるバージョンに対してコンパイルしましたが、使用しようとしている dll は別のものです。

プログラムが実行されている場所とコンパイルされた場所の間のバージョンを見ると、それらは異なっているに違いありません。

于 2012-07-01T03:44:54.173 に答える