RavenDB で自動生成されたインデックスがエラーをスローしています。
主なエラー行は次のとおりです。
行 25、位置 4: エラー CS1593 - デリゲート 'System.Func>' は引数を 1 つ取りません
行 29、位置 5: エラー CS0833 - 匿名型は同じ名前の複数のプロパティを持つことはできません
完全なエラー メッセージは、添付ファイルに含まれています。
コードは次のとおりです。
class Program
{
static void Main(string[] args)
{
var documentStore = new DocumentStore
{
Url="http://localhost:8080/databases/test"
};
documentStore.Initialize();
var bookName = "Book";
using (var session = documentStore.OpenSession())
{
session.Store(new Book
{
Name = bookName,
Posts = new List<BookPost> {new BookPost()
{
Title = "A post",
Type = BookPost.BookPostType.BooPost1
}
}
});
session.Store(new Book
{
Name = bookName,
Posts = new List<BookPost> {new BookPost()
{
Title = "A post",
Type = BookPost.BookPostType.BooPost2
}
}
});
session.SaveChanges();
}
using (var session = documentStore.OpenSession())
{
var ravenQueryable = session.Query<Book>().Customize(b=>b.WaitForNonStaleResultsAsOfLastWrite()).ToList();
}
using (var session = documentStore.OpenSession())
{
var bookToGet = new List<string>() {bookName};
var bookPostToGet = new List<BookPost.BookPostType?> {BookPost.BookPostType.BooPost1};
var books = session.Query<Book>().Where(b => b.Name.In(bookToGet));
books = books.Where(b => b.Posts.Any(p => p.Type.In(bookPostToGet)));
//****** This line throws an error *********//
var bookPage = books.ToList();
}
}
}
public class Book
{
public String Name { get; set; }
public List<BookPost> Posts { get; set; }
}
public class BookPost
{
public string Title { get; set; }
public BookPostType? Type { get; set; }
public enum BookPostType
{
BooPost1,
BooPost2,
BooPost3
}
}
最近の RavenDb ビルド RavenDB.Client.2.5.2666 および RavenDB.Client.2.5.2666 で試してみました。
完全なソリューション (RavenDb パッケージを使用) は、私のgithubで入手できます。