2017-08-28 105 views
0

Visual Studio 2017 C# 我正在嘗試爲MySQL實施Linq2db,並且是一名Linq新手,有點麻煩。我試圖從GitHub linq2db中使用一個簡單的兩列表(maillist) - 整數列表和client_id,它們一起是主鍵。 我已經從nuget安裝了linq2db.MySql,包括linq2db和linq2db.t4models。使用「傳統」方法,我可以處理數據庫,以便連接起作用。這是我迄今爲止所做的。linq2db.MySql - 無法找到源類型的查詢模式的實現..找不到的地方

我的App.config:

<?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;[email protected]!;charset=utf8;" providerName="MySql.Data.MySqlClient"/> 
      </connectionStrings> 
</configuration> 

POCO類:

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>(); } } 

} 

查詢

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(); 
    } 
} 

這將無法編譯,我得到db.Mailing下的紅色波浪線在查詢和錯誤中:

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

如果我刪除where子句,我會得到兩個不同的錯誤。 也許我需要包括一個參考,但哪個?

The type of the expression in the select clause is incorrect. Type inference failed in the call to 'Select'. 
'T' does not contain a definition for 'ToList' and no extension method 'ToList' accepting a first argument of type 'T' could be found (are you missing a using directive or an assembly reference?) 

我看過很多關於這個錯誤變化的文章,但我仍然不明白。 任何幫助,將不勝感激。

TIA, Gerry。

回答

0

哎呀!我忘了使用system.Linq;

對不起,如果我造成任何麻煩。

相關問題