Sử dụng LINQ, làm thế nào tôi có thể lấy tên cột của bảng? C# 3.0, 3.5 khuôn khổLINQ: Lấy Tên Cột Bảng
Trả lời
tôi giả sử bạn có nghĩa là bằng cách sử dụng LINQ to SQL, trong đó xem xét trường hợp tại DataContext.Mapping tài sản. Đó là những gì tôi sử dụng.
Nếu bạn không có ý đó, có lẽ bạn có thể giải thích về những gì bạn đang cố gắng đạt được?
Tôi muốn viết một chương trình bằng LINQPad (C#) Điều đó có thể xây dựng các câu lệnh chèn SQL cho khóa học này, tôi yêu cầu các tên cột của các bảng. –
điều này có thể được làm rõ một chút ... đây không phải là câu trả lời. –
Một số ví dụ sử dụng sẽ là tuyệt vời. API ánh xạ hơi không trực quan để nói ít nhất ... –
Lặp các thuộc tính của lớp L2S của bạn với sự phản ánh
Sử dụng phương thức ExecuteQuery trên bối cảnh dữ liệu của bạn và thực hiện kịch bản SQL này:
var columnNames = ctx.ExecuteQuery<string>
("SELECT name FROM sys.columns WHERE object_id = OBJECT_ID('your table name');");
này mang đến cho bạn một IEnumerable<string>
với tất cả các tên cột trong bảng mà bạn chỉ định.
Tất nhiên, nếu bạn muốn và cần, bạn luôn có thể truy xuất thêm thông tin (ví dụ: loại dữ liệu, độ dài tối đa) từ chế độ xem danh mục sys.columns
trong SQL Server.
Nếu bạn đang nói về việc lấy các cột cho bảng được ánh xạ, hãy xem this answer để xem cách truy cập thuộc tính cột. Từ đó, bạn có thể lấy tên cột, loại, v.v.
Tôi tình cờ gặp câu hỏi này và tìm câu trả lời thực sự tốt ở đây. Đây là những gì tôi nghĩ ra. Chỉ cần ném nó vào LINQPad dưới chế độ biểu thức C#.
from t in typeof(UserQuery).GetProperties()
where t.Name == "Customers"
from c in t.GetValue(this,null).GetType().GetGenericArguments()[0].GetFields()
select c.Name
Sửa đổi khi bạn thấy phù hợp.
lẽ là quá muộn nhưng, tôi giải quyết vấn đề này bằng mã này
var db = new DataContex();
var columnNames = db.Mapping.MappingSource
.GetModel(typeof(DataContex))
.GetMetaType(typeof(_tablename))
.DataMembers;
Cảm ơn bạn, bạn vừa tiết kiệm cho tôi một lượng thời gian của thuyền. Điều này tốt hơn câu trả lời được chấp nhận vì điều này cho thấy cách sử dụng thuộc tính DataContext.Mapping. –
Để sử dụng VB.Net 'GetType (DataContext)' thay vì 'typeof (DataContext)'. – Zarepheth
tôi đã sử dụng mã này trong LinqPad
from t in typeof(table_name).GetFields() select t.Name
Lưu ý rằng đó là phiên bản chưa được phân tách của tên bảng. –
Mã dưới đây sẽ làm việc từ trả về tất cả các tên cột của bảng
var columnnames = from t in typeof(table_name).GetProperties() select t.Name
Không chắc tại sao điều này không được bình chọn, đó là câu trả lời thanh lịch nhất. Đây là cú pháp tương đương lambda: var columnnames = typeof (table_name) .GetProperties(). Select (t => t.Name); – draconis
Có thể điều này không được bình chọn vì bạn không chỉ nhận được các cột mà còn cả các thuộc tính bổ sung nữa. Nó thường là một phần lớp với khả năng mở rộng trong tâm trí sau khi tất cả. – mbx
var query = from x in DataBase.Table_Name
select x.Column_Name;
sp_help 'TableName'
Một lựa chọn cho một cửa sổ LinqPad SQL để ms sql máy chủ
Trong LinqPad:
TableNames.Take (1) hoạt động.
Rất nhanh để nhập. (Mặc dù bạn ở một thế giới lý tưởng, sẽ đẹp hơn nếu không chọn bất kỳ hàng nào.)
Lưu ý đây là dạng bảng số nhiều. Bạn cũng có thể thực hiện Take (0) và nhìn vào tab kết quả SQL.
- 1. Lấy tên cột trong bảng mysql?
- 2. lấy tên cột cho bảng cụ thể
- 3. Hive - lấy tên cột
- 4. Lấy tên cột
- 5. cách lấy tên cột của bảng trong truy cập ms?
- 6. Cách lấy tên cột của bảng khi chạy trong C#?
- 7. Lấy tên cột trong jpa
- 8. Lấy tên cột từ java.sql.ResultSet
- 9. mysql lấy tên cột bảng theo thứ tự bảng chữ cái
- 10. Lấy tên bảng từ ActiveRecord
- 11. Cách lấy tên cột từ GridView?
- 12. Lấy tên cột trong thực thể doctrine2
- 13. PHPExcel lấy tên cột tương ứng với cột được nêu
- 14. Tên cột bảng Oracle có không gian
- 15. Hạn chế tên cột của bảng Postgres?
- 16. Chỉ lấy tên cột như trong mảng mysql
- 17. Làm cách nào để lấy loại cột từ bảng?
- 18. cách lấy tên cột khóa chính cho một bảng nhất định?
- 19. Cách lấy tên bảng và cột từ SQl bằng cách sử dụng JSQLPARSE
- 20. Cách lấy tên bảng/cột ban đầu khi sử dụng PDO?
- 21. Sử dụng GetSchemaTable() để chỉ lấy tên cột
- 22. LINQ: Thêm cột RowNumber
- 23. LINQ-to-Entities, Tên cột mơ hồ có liên kết giữa hai chế độ xem có cùng tên cột
- 24. LINQ COUNT trên nhiều cột
- 25. Multi-Nhóm Cột Đếm LINQ
- 26. cách tạo bảng tổng hợp với cột động bằng cách sử dụng biểu thức cây linq
- 27. Lấy tổng của một số cột từ hai bảng
- 28. jQuery và Bảng, lấy mọi ô trong cột NTH
- 29. Cột LINQ to SQL có từ khóa làm tên cột, cách báo giá/thoát
- 30. lấy tên cột từ kết quả truy vấn bằng pymssql
Được gắn thẻ lại thành 'linq-to-sql', vui lòng chỉnh sửa câu hỏi của bạn nếu bạn có nghĩa là một số loại" LINQ "khác. –
Thật không may truy vấn này chạy bên trong LINQPad vì vậy làm thế nào để tôi có được bối cảnh trong LINQPad? –