Ich versuche linq2db und MySQL zu verwenden, um meine Datenbank zu verbinden, so, ich habe eine einfache Verbindung wie so:Fehler bei der Verbindung zur Datenbank mit Linq
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LinqToDB;
using LinqToDB.Configuration;
using LinqToDB.DataProvider;
using MySql.Data.MySqlClient;
using twitter.Properties;
using DataModels;
namespace twitter.classes
{
class core
{
public static string DatabaseHost
{
get { return Settings.Default["databasehost"].ToString(); }
set { Settings.Default["databasehost"] = value; }
}
public static string DatabaseUser
{
get { return Settings.Default["databaseuser"].ToString(); }
set { Settings.Default["databaseuser"] = value; }
}
public static string DatabaseName
{
get { return Settings.Default["databasename"].ToString(); }
set { Settings.Default["databasename"] = value; }
}
public static string DatabasePassword
{
get { return Settings.Default["databasepass"].ToString(); }
set { Settings.Default["databasepass"] = value; }
}
public class ConnectionStringSettings : IConnectionStringSettings
{
public string ConnectionString { get; set; }
public string Name { get; set; }
public string ProviderName { get; set; }
public bool IsGlobal => false;
}
public class MySettings : ILinqToDBSettings
{
public IEnumerable<IDataProviderSettings> DataProviders
{
get { yield break; }
}
public string DefaultConfiguration => "Twitters"; // lets set your configuration as default, so you can call just new DataContext() or new DataConnection()
public string DefaultDataProvider => ProviderName.MySql; // and set default database type
private static IDataProvider GetDataProvider()
{
return new LinqToDB.DataProvider.MySql.MySqlDataProvider();
}
public IEnumerable<IConnectionStringSettings> ConnectionStrings
{
get
{
yield return
new ConnectionStringSettings
{
Name = "Twitters", // This is configuration name, you pass it to DataConnection constructor
ProviderName = ProviderName.MySql, // here we are setting database we are working with
ConnectionString = "server=" + DatabaseHost + "; database=" + DatabaseName + "" + ";user=" + DatabaseUser + "; password=" + DatabasePassword + ";",
};
}
}
}
public class DbTwitters : LinqToDB.Data.DataConnection
{
public DbTwitters() : base("Twitters") { }
public ITable<Account> Accounts { get { return GetTable<Account>(); } }
public ITable<Favorite> Favorites { get { return GetTable<Favorite>(); } }
public ITable<Retweet> Retweets { get { return GetTable<Retweet>(); } }
}
internal class MySqlDataReader
{
}
}
}
Was ich in meinem Hauptprogramm zu verwenden, ich versuche, Informationen zu speichern, und wie so eine Verbindung zur Datenbank:
using (var db = new TwitterDB())
{
var query = from a in db.Accounts
select a;
Nun, mein Problem ist, wenn ich mit der Datenbank zu verbinden versuche, meine pgoram wirft einen Fehler des folgenden Worte:
ein Versuch, eine Auto-Namen-Datenbank für Datei anhängen aspnetdb.mdf fehlgeschlagen ...
Meine Tables.cs Datei vorhanden ist, wie Sie hier sehen können;
Ich habe die Verbindung in der Konfigurationsdatei:
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Wie kann ich diesen Fehler zu beheben, damit ich zu meiner Datenbank verbinden kann?
Wenn Sie Ihr Projekt nach 'aspnetdb 'durchsuchen, gibt es irgendwelche Übereinstimmungen? – mjwills
Können Sie Konfigurationsdetails für web.config angeben? Scheint, dass Ihre Verbindungsreihenfolge standardmäßig auf SQL Server und nicht auf den MySQL-Connector festgelegt wurde. –
Ich habe versucht, Aspnetdb, aber keine Übereinstimmungen zu suchen. Ich habe keine Webconfig-Datei, nur die App-Konfiguration: https://pastebin.com/H9RzZudx –