The mapping of CLR type to EDM type is ambiguous with EF 6 & 5?

后端 未结 14 1581
长发绾君心
长发绾君心 2020-11-27 05:38

Please any one can help me to fix this error?

Schema specified is not valid. Errors:

The mapping of CLR type to EDM type is ambiguous because mult

14条回答
  •  爱一瞬间的悲伤
    2020-11-27 06:21

    if you have 2 connection string in web config but you want to use one connection string You use dynamic create connection string other entities. I have edmx(db first) and code first Entities in my solution. I use this class in Code first entities.

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.Entity.Core.EntityClient;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace Data
    {
        public class SingleConnection
        {
            private SingleConnection() { }
            private static SingleConnection _ConsString = null;
            private String _String = null;
    
            public static string ConString
            {
                get
                {
                    if (_ConsString == null)
                    {
                        _ConsString = new SingleConnection { _String = SingleConnection.Connect() };
                        return _ConsString._String;
                    }
                    else
                        return _ConsString._String;
                }
            }
    
            public static string Connect()
            {
                string conString = ConfigurationManager.ConnectionStrings["YourConnectionStringsName"].ConnectionString;
    
                if (conString.ToLower().StartsWith("metadata="))
                {
                    System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder efBuilder = new System.Data.Entity.Core.EntityClient.EntityConnectionStringBuilder(conString);
                    conString = efBuilder.ProviderConnectionString;
                }
    
                SqlConnectionStringBuilder cns = new SqlConnectionStringBuilder(conString);
                string dataSource = cns.DataSource;
                SqlConnectionStringBuilder sqlString = new SqlConnectionStringBuilder()
                {
                    DataSource = cns.DataSource, // Server name
                    InitialCatalog = cns.InitialCatalog,  //Database
                    UserID = cns.UserID,         //Username
                    Password = cns.Password,  //Password,
                    MultipleActiveResultSets = true,
                    ApplicationName = "EntityFramework",
    
                };
                //Build an Entity Framework connection string
                EntityConnectionStringBuilder entityString = new EntityConnectionStringBuilder()
                {
                    Provider = "System.Data.SqlClient",
                    Metadata = "res://*",
                    ProviderConnectionString = sqlString.ToString()
                };
                return entityString.ConnectionString;
            }
        }
    }
    

    And when I call entities

    private static DBEntities context
    {
    get
    {
        if (_context == null)
            _context = new DBEntities(SingleConnection.ConString);
    
        return _context;
    
    }
    set { _context = value; }
    }
    

提交回复
热议问题