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, 格里。
答案 0 :(得分:1)
糟糕!我忘了使用system.Linq;
对不起,如果我给任何人造成任何麻烦。