首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >linq2db插入或查询返回错误:连接选项“数据源”被复制

linq2db插入或查询返回错误:连接选项“数据源”被复制
EN

Stack Overflow用户
提问于 2020-02-06 13:33:00
回答 1查看 570关注 0票数 0

我有一个简单的表,可以使用MySQL命令执行Inser和读取操作。由于某些原因,在使用Linq2DB时,我会得到以下错误:

连接选项‘数据源’被复制。在MySql.Data.MySqlClient.MySqlBaseConnectionStringBuilder.AnalyzeConnectionString

这工作:

代码语言:javascript
复制
       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();
            }
        }

此抛出错误:

代码语言:javascript
复制
           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();
            }

我的数据表:

代码语言:javascript
复制
    [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数据连接类:

代码语言:javascript
复制
    public class EocIpcDB : LinqToDB.Data.DataConnection
    {
        public EocIpcDB() : base("eocipcdb") { }

        public ITable<EventsOnCloudData> EventsOnCloudData => GetTable<EventsOnCloudData>();
    }

Linq2DB设置类:

代码语言:javascript
复制
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;
    }
EN

回答 1

Stack Overflow用户

发布于 2020-02-07 12:01:48

此错误由MySql.Data提供程序本身生成,因为您有两次服务器选项集:Server=.\;datasource=localhost;。服务器和数据源是同义词,与hostdata sourceaddressaddrnetwork address并列

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60096191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档