2012-01-25 26 views
7

Tôi quen thuộc với aspnet_regsql.exe để tạo ra một cơ sở dữ liệu thành viên (nó tạo ra 11 bảng)Tạo MVC4 thành viên Cơ sở dữ liệu

Tuy nhiên, trong VS2010 dự án MVC4 tôi đã tạo ra một cơ sở dữ liệu thành viên chỉ với sáu bàn (Applications, Thành viên, Profiles, Vai trò, Người dùng & UsersInRoles)

Làm cách nào để tạo cơ sở dữ liệu với lược đồ (mới?) Này?

+0

Bạn có hỏi liệu bạn có thể tạo một ứng dụng trước MVC4 bằng cách sử dụng lược đồ DB sáu bảng MVC4/ASP.Net 4.5 mới không? –

+1

Ok, các nhà cung cấp trong MVC 4 KHÔNG giống nhau, MVC4 giới thiệu các nhà cung cấp mới - nuget.org/packages/System.Web.Providers. Cảm ơn tất cả sự giúp đỡ – LenPopLilly

Trả lời

2

aspnet_regsql.exe là một phần của kiến ​​trúc ASP.Net chứ không phải MVC.

Đặt cược của tôi là Bản xem trước dành cho nhà phát triển MVC4 đi kèm với một số tập lệnh lược đồ tùy chỉnh trong cấu trúc dự án hoặc có phiên bản xem trước của phiên bản mới ASP.Net 4.5 phiên bản aspnet_regsql.exe được cài đặt.

Nếu sau này là đúng, bạn có thể sử dụng điều đó để tạo cơ sở dữ liệu và gắn nó vào ứng dụng MVC3 (và trước đó) của bạn. Các tác động ở đây là do sự khác biệt về lược đồ, bạn có thể cần phải viết các Nhà cung cấp của riêng bạn.

Một tùy chọn khác là tạo cơ sở dữ liệu với mẫu MVC4 của bạn, xóa dự án và mã lớp DA trong dự án MVC3 sử dụng cơ sở dữ liệu của bạn. Tất cả những gì bạn cần lấy là chuỗi kết nối. Nhưng một lần nữa, bạn sẽ phải cuộn các nhà cung cấp của riêng bạn vì các nhà cung cấp cũ sẽ không biết lược đồ 6 bảng mới.

+2

Cảm ơn bạn .nhưng nhưng Ive đã poking xung quanh và phát hiện ra các nhà cung cấp trong thực tế khác nhau trong MVC4. Cảm ơn sự giúp đỡ anyway – LenPopLilly

+1

Bạn được chào đón. Và vâng, ASP.Net 4.5 sẽ có các nhà cung cấp mới và lược đồ db mới. Cá nhân, tôi thích để cuộn của riêng tôi thay vì sử dụng tất cả các công cụ thành viên của họ. Nó giống như một bít tết béo đôi khi. ;) –

+0

@LillyPop - tôi có trả lời câu hỏi của bạn đủ tốt không? –

2

Bạn có thêm một số lập luận cho việc cài đặt các tính năng: http://msdn.microsoft.com/en-us/library/ms229862(v=vs.80).aspx

Bạn có thể chạy Aspnet_regsql.exe mà không cần bất kỳ đối số dòng lệnh để chạy một thuật sĩ sẽ hướng dẫn bạn qua quá trình cài đặt.

Bảng nào bị thiếu và bảng nào được tạo?

+0

Trong khi điều này gần như là câu trả lời đúng (tôi chỉ thử nó bằng cách sử dụng tùy chọn dòng lệnh để chỉ tạo ra sáu bảng), VS2010 MVC4 đang tạo bảng với cấu trúc hơi khác (ví dụ: không có thành viên/MobilePIN) trong lược đồ db mvc) Vì vậy, im nghĩ rằng họ phải đã tạo ra nó một cách khác ?? – LenPopLilly

+0

Tôi nghĩ bạn nên có một cái nhìn tại bài viết này: http://computerscribe.com/blogs/blogPost?id=11 –

+0

Cảm ơn bài viết tuyệt vời, tôi hiểu nhiều hơn bây giờ.Tôi đã tải các scipts được đề cập trong bài viết (Common, Membership & Roles) vào SQL Server Management Studio nhưng các bảng mà chúng tạo ra có tên là aspnet_Membership, đây là vấn đề, vì các bảng do MVC4 tạo ra khi bạn sử dụng mẫu ứng dụng internet tạo ra các bảng tên Thành viên, Vai trò (không có phần aspnet_) MVC4 đang làm điều gì đó khác ... – LenPopLilly

4

Tất cả bạn cần làm là:

thay đổi web.config của bạn để trỏ đến các kết nối bạn muốn

<add name="DefaultConnection" connectionString="uid=****;pwd=*****;server=(local);database=****" providerName="System.Data.SqlClient" /> 

Xác Filters \ InitializeSimpleMembershipAttribute.cs

dòng 41 nên đọc:

WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true); 

Lưu ý rằng autoCreateTables được đặt t o true và tên của kết nối bạn đặt trong web.config được đặt.

Bây giờ, khi người dùng đăng ký nó sẽ xem xét cơ sở dữ liệu bạn thiết lập. Nếu các bảng không tồn tại, chúng sẽ được tạo ra.

+0

Tuyệt vời !!! Đây là những gì mọi người đều muốn – iamCR

Các vấn đề liên quan