Tôi tò mò về cách tạo thuộc tính có thể được dịch bởi LINQ. Dưới đây là một ví dụ rất đơn giản.Tạo thuộc tính mà LINQ to Entities có thể dịch
Tôi có một bảng/lớp Category
, mà có một cột ParentId
liên kết với chính nó (Vì vậy, một loại có thể có tiểu mục)
EF tự động tạo ra một tài sản Category1
, đó là chủ đề chính.
Vì lợi ích của sự rõ ràng, tôi tạo ra tài sản khác
public partial class Category
{
public Category Parent
{
get { return Category1; }
}
}
Vấn đề là, công trình này
var categs = ctx.Categories.Where(x => x.Category1 == null);
nhưng điều này không làm việc
var categs = ctx.Categories.Where(x => x.Parent == null);
Các thành viên loại được chỉ định 'Phụ huynh' không được hỗ trợ trong LINQ to Entities. Chỉ các trình khởi tạo, thành viên thực thể và thuộc tính điều hướng thực thể mới được hỗ trợ.
Có cách nào để tạo thuộc tính có thể dịch (LINQ to SQL) mà không làm .ToList()?
EDIT: Tôi muốn tránh chạm Model.edmx vì cơ sở dữ liệu thường xuyên thay đổi trong quá trình phát triển và .edmx thường cần phải được tái
bạn cần tạo thuộc tính điều hướng từ danh mục cho phụ huynh như khóa ngoài –
Xin chào, tôi rất tiếc, tôi không chắc chắn ý của bạn là gì. Đã có một khóa ngoại (Nếu không EF sẽ không tạo Category1) – Aximili
Bạn đã thực sự nhìn vào 'Category1' trong Model.Designer.cs và/hoặc Reflector để xem thuộc tính nào hay các vật liệu khác được thêm vào định nghĩa của nó? –