我有一个简单的表,可以使用MySQL命令执行Inser和读取操作。由于某些原因,在使用Linq2DB时,我会得到以下错误:
连接选项‘数据源’被复制。在MySql.Data.MySqlClient.MySqlBaseConnectionStringBuilder.AnalyzeConnectionString
这工作:
private void BulkInsert(List<string> rows)
{
var commandText = new StringBuilder("INSERT INTO cloudevents (JobId, Name, ErrorUrgency, EventCategory, EventType, Time, Parameters) VALUES ");
commandText.Append(string.Join(",", rows));
commandText.Append(";");
try
{
using (MySqlCommand command = MySqlConnectionConnector.CreateCommand())
{
command.CommandText = commandText.ToString();
command.CommandType = CommandType.Text;
command.ExecuteNonQuery();
}
}
catch (Exception e)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(e);
throw;
}
finally
{
rows.Clear();
}
}此抛出错误:
using (var db = new EocIpcDB())
{
db.Insert(new EventsOnCloudData()
{
JobId = 2000,
ErrorUrgency = "Error",
EventCategory = "HW",
EventType = "Disk",
Name = "Haedware Events",
Time = DateTime.Now,
Parameters = "Lots of Parameters"
});
var query = from p in db.EventsOnCloudData select p;
return query.ToList();
}我的数据表:
[Table("cloudevents")]
public class EventsOnCloudData
{
[PrimaryKey, Identity]
public int Key { get; set; } // primary key / uid
[Column(Name = "Name"), NotNull]
public string Name { get; set; }
[Column(Name = "ErrorUrgency"), NotNull]
public string ErrorUrgency { get; set; }
[Column(Name = "EventCategory"), NotNull]
public string EventCategory { get; set; }
[Column(Name = "EventType"), NotNull]
public string EventType { get; set; }
[Column(Name = "JobId"), NotNull]
public int JobId { get; set; }
[Column(Name = "Time"), NotNull]
public DateTime Time { get; set; } //UTC
[Column(Name = "Parameters"), NotNull]
public string Parameters { get; set; } //JSON Parameters
}LinqtoDB数据连接类:
public class EocIpcDB : LinqToDB.Data.DataConnection
{
public EocIpcDB() : base("eocipcdb") { }
public ITable<EventsOnCloudData> EventsOnCloudData => GetTable<EventsOnCloudData>();
}Linq2DB设置类:
public class EventsOnCloudSettings : ILinqToDBSettings
{
public IEnumerable<IDataProviderSettings> DataProviders => Enumerable.Empty<IDataProviderSettings>();
public string DefaultConfiguration => "SqlServer";
public string DefaultDataProvider => "SqlServer";
public IEnumerable<IConnectionStringSettings> ConnectionStrings
{
get
{
yield return
new ConnectionStringSettings
{
Name = "eocipcdb",
ProviderName = ProviderName.MySql,
ConnectionString = @"Server=.\;datasource=localhost;port=3306;database=eocipcdb;username=root;password=HPdfeHPdfe#1;"
};
}
}
}
internal class ConnectionStringSettings : IConnectionStringSettings
{
public string Name { get; set; }
public string ProviderName { get; set; }
public string ConnectionString { get; set; }
public bool IsGlobal => false;
}发布于 2020-02-07 12:01:48
此错误由MySql.Data提供程序本身生成,因为您有两次服务器选项集:Server=.\;datasource=localhost;。服务器和数据源是同义词,与host、data source、address、addr和network address并列
https://stackoverflow.com/questions/60096191
复制相似问题