Lớp ẩn danh chỉ đọc thuộc tính trong C#. Thường được sử dụng để khai báo trong truy vấn chọn LINQ để nhận các giá trị cụ thể từ cơ sở dữ liệu. Trong mã của tôi, tôi có truy vấn sau đây. Điều làm tôi bối rối khi chọn đối tượng mới của lớp ẩn danh bằng cách sử dụng câu lệnh mới. Tôi có một lớp mô hình là StudentClerkshipsLogModel
. Khi tôi sử dụng tên model, kết quả truy vấn cho phép chỉnh sửa.LINQ chọn truy vấn có loại Chưa xác định và người dùng Kiểu xác định
var query = (from entity in _tblStudentClerkshipsLog.GetQueryable()
where entity.StudentID == intStudentID
select new StudentClerkshipsLogModel
{
StudentClerkshipID = entity.StudentClerkshipID,
StudentID = entity.StudentID,
ClerkshipID = entity.ClerkshipID,
}).ToList();
Khi tôi không đề cập đến loại sau new
trong select
tuyên bố tôi không thể thoát ra. trình biên dịch tăng lỗi. đối tượng đồng nghĩa chỉ đọc.
var query = (from entity in _tblStudentClerkshipsLog.GetQueryable()
where entity.StudentID == intStudentID
select new
{
StudentClerkshipID = entity.StudentClerkshipID,
StudentID = entity.StudentID,
ClerkshipID = entity.ClerkshipID,
}).ToList()
câu hỏi của tôi là cách linq liên kết với hai truy vấn khác nhau. Cả hai truy vấn có liên kết động hoặc đầu tiên là tĩnh.
Cảm ơn
Ý của bạn là gì bởi "Tôi không thể thoát"? Mã trình biên dịch phàn nàn là gì? (Tôi nghi ngờ rằng đó là mã bạn đã hiển thị.) Bạn có đang cố chỉnh sửa các đối tượng sau này không? Nếu có, hãy hiển thị mã. –
tôi muốn sửa đổi mã sau. Nhưng tôi cần phải biết sự khác biệt giữa các truy vấn chọn để tôi có thể lựa chọn tốt hơn. –
@JonSkeet: nó trông giống như một lỗi đánh máy. "Tôi không thể * chỉnh sửa *". – Dennis