2010-03-22 36 views
24

Tôi hiện đang học C# và LINQ. Tôi có rất nhiều câu hỏi về họ. Về cơ bản, tôi cần một hướng dẫn từng bước.C# tệp dbml đến từ đâu?

  1. Tôi cho rằng tệp dbml là tệp cấu hình của cơ sở dữ liệu. Nếu tôi nhấp đúp vào tập tin dbml VS sẽ mở nó trong một sơ đồ thiết kế. Tôi có thể tạo/xóa/sửa đổi bảng tại đây không? Tôi có thể sử dụng add new item để thêm LINQ to SQL Classes để nhận tệp dbml?

  2. Điều gì tiếp theo? Tạo bảng trong cơ sở dữ liệu? Tạo kịch bản lệnh SQL? Tạo tệp cs? Khi nào? Làm sao?

Trả lời

24

Tệp DBML không liên quan đến máy chủ cơ sở dữ liệu. Đó là một điều hoàn toàn phía khách hàng. Về cơ bản nó là một tập hợp thông tin về các bảng của bạn trong cơ sở dữ liệu và cách bạn sắp ánh xạ chúng tới các đối tượng .NET.

Tất nhiên, bạn có thể kéo bảng từ cơ sở dữ liệu và Visual Studio suy ra một số thông tin cho bạn tự động, nhưng việc thay đổi tệp sẽ không ảnh hưởng đến cơ sở dữ liệu. Bạn có thể tạo một tệp DBML từ đầu mà không cần bất kỳ cơ sở dữ liệu nào.

Nội bộ, tệp DBML đơn giản là tệp XML được Visual Studio cung cấp vào công cụ tùy chỉnh và tạo các tệp .cs đại diện cho mô hình đối tượng LINQ cho cơ sở dữ liệu của bạn.

+0

có cách nào để bỏ qua tệp dbml để tạo tệp .cs không? đồng nghiệp của tôi có lệnh này: sqlmetal/server: dwasilew \ sqlexpress/database: Ande /code:Ande.cs Tôi đoán tệp Ande.cs được tạo trong lệnh này. không có .dbml nào được đề cập. – 5YrsLaterDBA

+0

@ 5Yrs: 'SQLMetal' là công cụ (1) có thể tạo' dbml' từ cơ sở dữ liệu (2) có thể tạo mã ra khỏi 'dbml' (3) có thể hợp lý hóa hai quy trình và tệp nguồn đầu ra trực tiếp từ cơ sở dữ liệu . Visual Studio về cơ bản thực hiện điều tương tự với GUI. Bạn có thể thấy các đối số dòng lệnh khác nhau cho SQLMetal tại đây: http://msdn.microsoft.com/en-us/library/bb386987.aspx –

3

Tệp DBML là ánh xạ xác định các lớp của bạn dựa trên lược đồ cơ sở dữ liệu của bạn. Có, nó định nghĩa chuỗi kết nối (mặc định) của bạn, nhưng nó không "cấu hình" cơ sở dữ liệu của bạn cả.

LINQ to Sql sử dụng phương pháp tiếp cận cơ sở dữ liệu đầu tiên, nơi bạn có cơ sở dữ liệu và mô hình hóa các lớp của bạn sau lược đồ DB. Bằng cách kéo & thả bảng lên đó, bạn sẽ tự động tạo các lớp để bạn không phải loại chúng ra. Bạn có thể thay đổi tên thuộc tính vv từ đó và ánh xạ giữa thuộc tính và tên cột cơ sở dữ liệu chính xác của nó sẽ vẫn nguyên vẹn.

2

Có, tệp DBML được tạo khi bạn thêm lớp LINQ to SQL. Trong trình thiết kế (những gì bạn thấy khi bạn nhấp đúp vào tệp DBML), bạn có thể kéo các bảng (từ trình thám hiểm máy chủ) vào nó. Sau đó, bạn có thể tham chiếu các bảng này trong mã của mình. Có nhiều hơn một vài nhận hướng dẫn bắt đầu ra có:

Kiểm tra câu hỏi này SO để biết chi tiết:

https://stackoverflow.com/questions/481244/can-anyone-recommend-a-good-tutorial-for-learning-linq2sql

+0

Câu hỏi SO được liên kết dường như đã bị xóa hoặc di chuyển hoặc một cái gì đó ... – Alex

+0

Vâng, bài đăng này là 7 tuổi :-). LINQ to SQL được coi là đã chết theo tiêu chuẩn ngày nay. Trừ khi bạn đang làm việc với mã cũ, tôi sẽ xem xét sử dụng một cái gì đó khác như Entiy Framework. – HitLikeAHammer

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