Tôi muốn thay đổi Collation của toàn bộ cơ sở dữ liệu được tạo ra bởi mã ef đầu tiên, tôi cố gắng làm điều đó bằng cách chạy một kịch bản sau khi tạo nhưng nó không hoạt động,Làm thế nào để thay đổi/thiết lập đối chiếu trong EF Mã đầu tiên
_dbContext.Database.Delete();
_dbContext.Database.CreateIfNotExists();
_dbContext.Database.ExecuteSqlCommand("ALTER DATABASE afi COLLATE French_CI_AI");
Có thể đặt đối chiếu trước khi tạo cơ sở dữ liệu không?
Đó là ngoại lệ tôi nhận được:
Reset kết quả kết nối ở tiểu bang khác hơn đăng nhập ban đầu. Đăng nhập thất bại. Đăng nhập thất bại cho người dùng 'afi'. Đã xảy ra lỗi nghiêm trọng trên lệnh hiện tại. Các kết quả, nếu có, sẽ bị loại bỏ .
[SqlException (0x80131904): Đặt lại kết quả kết nối ở trạng thái khác là so với thông tin đăng nhập ban đầu. Đăng nhập thất bại.
Đăng nhập không thành công cho người dùng 'afi'. Đã xảy ra lỗi nghiêm trọng trên lệnh hiện tại. Kết quả, nếu có, phải được loại bỏ.]
System.Data.SqlClient.SqlConnection.OnError (SqlException ngoại lệ, Boolean breakConnection, Action`1 wrapCloseInAction) 388
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning (TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) 688
System.Data.SqlClient.TdsParser.TryRun (RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader datastream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean & dataReady) 4403
Hệ thống .Data.SqlClient.TdsParser.Run (Ru nBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader Datastream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +84
System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest (Byte [] đệm, yêu cầu TransactionManagerRequestType, String transactionName, TransactionManagerIsolationLevel isoLevel, thời gian chờ Int32 , SqlInternalTransaction giao dịch, TdsParserStateObject stateObj, Boolean isDelegateControlRequest) 1370
System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon (transactionRequest transactionRequest, string transactionName, IsolationLevel iso, 012.351.SqlInternalTransaction internalTransaction, Boolean isDelegateControlRequest) 674
System.Data.SqlClient.SqlInternalConnection.BeginSqlTransaction (IsolationLevel iso, String transactionName) 547
System.Data.SqlClient.SqlInternalConnection.BeginTransaction (IsolationLevel iso) 18
System.Data.SqlClient.SqlConnection.BeginDbTransaction (IsolationLevel IsolationLevel) +211
System.Data.EntityClient.EntityConnection.BeginDbTransaction (IsolationLevel IsolationLevel) +155[EntityException: Đã xảy ra lỗi khi bắt đầu giao dịch trên kết nối nhà cung cấp. Xem ngoại lệ bên trong để biết chi tiết.]
System.Data.EntityClient.EntityConnection.BeginDbTransaction (IsolationLevel IsolationLevel) 4.298.876
System.Data.EntityClient.EntityConnection.BeginTransaction() +10
System.Data.Objects.ObjectContext.SaveChanges (SaveOptions tùy chọn) 538 System.Data.Entity.Internal.InternalContext .SaveChanges() +218 Afi.Domain.Storage.AfiDbContext.SaveChanges() trong c: \ inetpub \ wwwroot \ afi \ src \ Domain \ Storage \ AfiDbContext.cs: 190
Afi.Domain.Storage.EntitySession.Commit() trong c: \ inetpub \ wwwroot \ afi \ src \ Domain \ Storage \ EntitySession.cs: 54
Afi.Web.Controllers.CIController.Seed (Boolean excludeSomeData) trong c: \ inetpub \ wwwroot \ afi \ src \ Web \ Bộ điều khiển \ CIControll er.cs: 263
Afi.Web.Controllers.CIController.Index() trong c: \ inetpub \ wwwroot \ afi \ src \ Web \ Controllers \ CIController.cs: 89
lambda_method (Closure, ControllerBase, Object [ ]) 81
System.Web.Mvc.ReflectedActionDescriptor.Execute (controllerContext controllerContext, IDictionary thông số) +39
System.Web.Mvc.Async. <> c_ DisplayClass42.b _41() +34 System.Web.Mvc.Async. <> c_ DisplayClass39.b _33() +124 System.Web.Mvc.Async. <> c_ DisplayClass4f.b _49() +837307 System.Web.Mvc.Async. <> c_ DisplayClass4f.b _49() +837307 System.Web.Mvc.Async. <> c_ DisplayClass37.b _36 (IAsyncResult asyncResult) +15
System.Web.Mvc.Async. <> c_ DisplayClass2a.b _20() +33 System.Web.Mvc.Async. <> c_ DisplayClass25.b _22 (IAsyncResult asyncResult) +837892
System.Web.Mvc. <> c_ DisplayClass1d.b _18 (IAsyncResult asyncResult) +28
System.Web.Mvc.Async. <> c_ DisplayClass4.b _3 (IAsyncResult ar) 15 System.Web.Mvc.Controller.EndExecuteCore (IAsyncResult asyncResult) +65
System.Web.Mvc.Async. <> c_ DisplayClass4.b _3 (IAsyncResult ar) 15 System.Web.Mvc.Controller.EndExecute (IAsyncResult asyncResult) +51
System.Web.Mvc. <> c_ DisplayClass8.b _3 (IAsyncResult asyncResult) +42
System.Web.Mvc.Async. <> c_ DisplayClass4.b _3 (IAsyncResult ar) 15 System.Web.Mvc.MvcHandler.EndProcessRequest (IAsyncResult asyncResult) +51
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +606 System.Web.HttpApplication.ExecuteStep (IExecutionStep bước, Boolean & completedSynchronously) +288
Bạn có biết rằng ngay cả khi bạn thay đổi đối chiếu trên cơ sở dữ liệu, bất kỳ đối tượng nào đã được tạo trước khi thay đổi sẽ tiếp tục đối chiếu? Nếu bạn có một bảng với 100 hàng trong đó. Họ sẽ giữ collation cũ trong khi các mục mới sẽ có collation mới. – twoleggedhorse
Ngoài ra, khi bạn tạo một cơ sở dữ liệu và bạn không chỉ định đối chiếu, nó sẽ lấy collation của máy chủ. Máy chủ có được đặt thành French_CI_AI không? – twoleggedhorse
chúng tôi muốn thay đổi collation giữa thời gian chúng ta tạo ra de database và thời gian EF Code Đầu tiên tạo các bảng nhưng chúng ta không biết làm thế nào để bảng trống rỗng – VinnyG