Tôi mới sử dụng MVC và tôi đang cố gắng sử dụng trình khởi tạo để khởi tạo dữ liệu vào DB khi ứng dụng được bắt đầu lần đầu tiên. Dưới đây là những gì tôi đã có trong Global.asax.cs:Không thể thả cơ sở dữ liệu vì hiện tại đang sử dụng MVC
System.Data.Entity.Database.SetInitializer(new MyAppInitializer());
MyAppContext db = new MyAppContext();
db.Database.Initialize(true);
Trong Web.config, đây là chuỗi kết nối của tôi:
<connectionStrings>
<add name="MyAppContext"
connectionString="data source= MyServer; Integrated Security=True; database=MyDatabase"
providerName="System.Data.SqlClient"/>
này đang sử dụng MS SQL 2008 R2 . Trình khởi tạo của tôi trông giống như sau:
public class MyAppInitializer : DropCreateDatabaseAlways<MyAppContext>
{
protected override void Seed(MyAppContext context)
{
var organizations = new List<Organizations>
{
new Organizations { OrgName = "AT", OrgPhone = 5093333433, OrgOfficeLocation = "ITB", OrgPointOfContact = "Tony", OrgIsActive = 1 },
new Organizations { OrgName = "Libraries", OrgPhone = 5093331122, OrgOfficeLocation = "Holland-Terrell", OrgPointOfContact = "Herald", OrgIsActive = 1 }
};
organizations.ForEach(s => context.Organizations.Add(s));
context.SaveChanges();
Tôi đảm bảo đã đóng kết nối với máy chủ và cơ sở dữ liệu trong SQL Server Management Studio, mặc dù không có ai sử dụng nó ngay bây giờ. Làm thế nào tôi có thể nhận được nó để tôi có thể khởi tạo dữ liệu này trong DB của tôi? Cảm ơn!
Chỉnh sửa: Tôi đã tạo DB trên máy chủ nhưng hoàn toàn trống (không có bảng, thủ tục, v.v.). Điều này có gây ra sự cố không?
Tôi nhận được lỗi cú pháp: cú pháp không chính xác gần 'IMMEDIATE' tôi đã thực hiện và chạy nó, nhưng nó chỉ chạy trong khoảng 5 phút trước khi tôi dừng nó, trong trường hợp này tôi gặp lỗi này: Yêu cầu GIAO DỊCH ROLLBACK không tương ứng BEGIN GIAO DỊCH. – SantasNotReal
VỚI ROLLBACK IMMEDIATE – Sam
Làm việc cho *** LocalDB *** bằng cách sử dụng _mdf file_? bằng cách sử dụng 'Data Source = (LocalDB) \ v11.0; AttachDbFilename = | DataDirectory | \ wingtiptoys.mdf; Bảo mật tích hợp = True' – Kiquenet