Thứ Năm, 13 tháng 9, 2018

Fix lỗi: The context is being used in Code First mode with code that was generated from an EDMX file for either Database First or Model First development.

Nếu bạn dùng Entity Framework và generate file edmx from db, khi publish website lên host gặp lỗi:
"The context is being used in Code First mode with code that was generated from an EDMX file for either Database First or Model First development..."
thì cách fix như sau:

1. Tạo 1 class để tạo chuỗi connection string cho EF bằng code:

using System.Data.SqlClient;
using System.Data.EntityClient;

namespace MY_DB_ORM
{
    static class MY_DB
    {
        public static string ConnectionString()
        {
            SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();

            // Set the properties for the data source.
            sqlBuilder.DataSource = "MY_SERVER_IP,1433";
            sqlBuilder.InitialCatalog = "MY_DB_NAME";
            sqlBuilder.UserID = "MY_USERID";
            sqlBuilder.Password = "MY_PASSWORD";
            sqlBuilder.IntegratedSecurity = false;

            // Build the SqlConnection connection string.
            string providerString = sqlBuilder.ToString();

            // Initialize the EntityConnectionStringBuilder.
            EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();

            //Set the provider name.
            entityBuilder.Provider = "System.Data.SqlClient";

            // Set the provider-specific connection string.
            entityBuilder.ProviderConnectionString = providerString;

            // Set the Metadata location.
            entityBuilder.Metadata = @"res://*/MY_CONTEXT_CLASS_NAME.csdl|
       res://*/MY_CONTEXT_CLASS_NAME.ssdl|
       res://*/MY_CONTEXT_CLASS_NAME.msl";
            return entityBuilder.ToString();

        }
    }
}

2. Ở context class của bạn, sửa contructor:

public MY_CONTEXT_CLASS_NAME_CONSTRUCTOR()
            : base(MY_DB.ConnectionString())
        {
        }

3. Ở context class comment OnModelCreating(DbModelBuilder modelBuilder) method

4. Xóa chuỗi connection string ở web.config



https://community.spiceworks.com/topic/815431-ef-can-t-get-it-to-work
Read More »