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::Book- 而不是 whatever-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();

        } 
    }     
}

The.Correct.Namespace正在使用的名称空间在哪里LibraryDataClasses.designer.cs(我在这里猜测文件名)。

于 2013-11-11T14:54:30.387 回答