1

図書館データベースの本にクエリを実行したいので、このコードを書きました...

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Web;

/// <summary>
/// Summary description for Book
/// </summary>
public partial class Book
{
    public static List<Book> GetQueryBooks(string query)
    {
        // Init db
        LibraryDataClassesDataContext db = new LibraryDataClassesDataContext();
        return db.Books.Where(b => b.Title.Contains(query) || b.Author.Contains(query)).ToList();

    } 
}

しかし、返されたときに「InvalidCastException: 指定されたキャストが無効です」というメッセージが表示される理由がわかりません。

4

1 に答える 1

1

名前空間が欠落しているように見えます-したがって、Bookここ(class定義では)はglobal::Bookwhat-your-LINQ-namespace-is ではなくを参照しますBook。本質的に、あなたpartial class Bookは、あなたが知っているとは完全に異なるタイプです。BookLibraryDataClassesDataContext

試す:

namespace The.Correct.Namespace
{
    public partial class Book
    {
        public static List<Book> GetQueryBooks(string query)
        {
            // Init db
            LibraryDataClassesDataContext db = new LibraryDataClassesDataContext();
            return db.Books.Where(b => b.Title.Contains(query) || b.Author.Contains(query)).ToList();

        } 
    }     
}

whereは、 (ここのファイル名から推測しています) 使用しているThe.Correct.Namespace名前空間です。LibraryDataClasses.designer.cs

于 2013-11-11T14:54:30.387 に答える