2009-05-07 26 views
9

Trong MVC, ORM có giống như mô hình hay chỉ là một cách mà mô hình có thể được thiết kế? Nói cách khác, "mô hình" không quan tâm đến cách bạn nhận được dữ liệu miễn là bạn có được nó. Hoặc, "mô hình" ngụ ý rằng tôi không còn có một loạt các câu lệnh SQL trong mã của tôi như trong mã phía sau các biểu mẫu không? Thứ gì khác?Trong MVC, ORM có đại diện cho mô hình không?

Cảm ơn bạn.

Trả lời

8

Không, ORM là thứ ánh xạ mô hình của bạn vào cơ sở dữ liệu của bạn và ngược lại. Để xây dựng, bạn sẽ tạo mô hình của mình trong mã để đại diện cho Domain Model (tức là các phần tử khác nhau trong miền vấn đề của bạn), sau đó định cấu hình ORM (mapper quan hệ đối tượng) để ánh xạ tới cơ sở dữ liệu. I E. Tạo các câu lệnh SQL sẽ cập nhật cơ sở dữ liệu dựa trên các đối tượng mô hình mà bạn cung cấp cho nó.

Tôi có thể hiểu một số nhầm lẫn, bởi vì có các công cụ (LINQ to SQL là một) thực sự tạo ra các lớp mô hình trong một nhà thiết kế cho bạn. Đây không phải là ORM thuần túy, như NHibernate, nơi bạn cung cấp các đối tượng ORM thuần cũ và một số cấu hình ánh xạ mà nó sử dụng (thường kết hợp với sự phản chiếu) để tự động tạo các câu lệnh SQL cho cơ sở dữ liệu.

0

Mô hình phải được tách riêng khỏi công nghệ lưu trữ dữ liệu phụ trợ càng nhiều càng tốt. Tôi nghĩ rằng đây là một bài viết khá hay mà thảo luận về mối quan hệ giữa các lớp truy cập dữ liệu, DTO, v.v. http://msdn.microsoft.com/en-us/magazine/dd263098.aspx

1

Nếu bạn muốn xem một triển khai thực tế tốt của MVC với ORM, hãy xem S#arp Architecture dựa trên MS ASP.NET MVC, Nhibernate và mẫu kho lưu trữ.

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