linq2db.MySql - 无法找到源类型的查询模式的实现。找不到的地方

时间:2017-08-28 15:25:27

标签: c# mysql linq

Visual Studio 2017 C# 我正在尝试为MySQL实现Linq2db并成为Linq新手我遇到了一些麻烦。我试图使用一个简单的两列表(maillist)来跟踪GitHub linq2db中的示例 - 整数列表和client_id,它们是主键。 我从nuget安装了linq2db.MySql,包括linq2db和linq2db.t4models。使用“常规”方法,我可以处理数据库,以便连接工作。这是我到目前为止所做的。

我的App.config:

<div class="g_product__wrapper slick-slide slick-cloned slick-active" data-slick-index="6" aria-hidden="false" style="width: 251px;">

POCO课程:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7"/>
    </startup>
    <connectionStrings>
                <add name="MyWinBroker" connectionString="Server=localhost;Port=3306;Database=winbroker;Uid=root;Pwd=DeValk@123!;charset=utf8;" providerName="MySql.Data.MySqlClient"/>
            </connectionStrings>
</configuration>

查询

using LinqToDB.Mapping;
using LinqToDB;

[Table(Name = "maillist")]
public class Mailing
{
    [PrimaryKey, Identity]
    public int List { get; set; }
    public int Client_id { get; set; }

    [Column(Name = "list"), NotNull]
    public int MailList { get; set; }
    [Column(Name = "client_id"), NotNull]
    public int Client { get; set; }
}
public class DbWinbroker : LinqToDB.Data.DataConnection
{
    public DbWinbroker() : base("MyWinbroker") { }
    public ITable<Mailing> Mailing { get { return GetTable<Mailing>(); } }

}

这将无法编译我在查询中的db.Mailing下获得了红色波浪线并且出现错误:

using System;
using System.Windows.Forms;
using Microsoft.VisualBasic.FileIO;
using FileHelpers;
using FileHelpers.Events;
using Itenso.TimePeriod;
using MySql.Data.MySqlClient;
using LinqToDB;
using System.Collections.Generic;

public static List<Mailing> All()
{
    using (var db = new DbWinbroker())
    {
        var query = from p in db.Mailing  
                    where p.MailList < 99
                    select p;
        return query.ToList();
     }
}

如果我删除where子句,那么会得到两个不同的错误。 也许我确实需要包含一个参考但是哪个?

Could not find an implementation of the query pattern for source type 'ITable<Form1.Mailing>'. 'Where' not found. 

我看过很多关于此错误变体的帖子,但我仍然不理解。 任何帮助将不胜感激。

TIA, 格里。

1 个答案:

答案 0 :(得分:1)

糟糕!我忘了使用system.Linq;

对不起,如果我给任何人造成任何麻烦。