Tôi bị kẹt ở đâu đó trên ứng dụng ASP.NET MVC 3 của tôi. đây là lỗi tôi nhận được: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ợ. (ASP.NET MVC và Entity Framework)
Thành viên loại được chỉ định 'AccommPropertyTags' không được hỗ trợ trong LINQ to Entities. Chỉ người khởi tạo, thành viên tổ chức và pháp nhân thuộc tính điều hướng mới được hỗ trợ.
Tôi đã tìm thấy như thế nào chúng ta có thể giải quyết việc này vào bài viết sau đây:
Only initializers, entity members, and entity navigation properties are supported
Nhưng tôi là một chút kỳ quặc.
Đây là một trong những lớp một phần của thực thể của tôi:
[MetadataType(typeof(AccommPropertyWebDetail.MetaData))]
public partial class AccommPropertyWebDetail {
public virtual ICollection<string> AccommPropertyTags {
get {
return Helpers.AccommPropertyTag.CreateStringListFromString(this.PropertyTags);
}
}
private class MetaData {
[Required, StringLength(50)]
public string Category { get; set; }
}
}
Như bạn thấy ở trên, AccommPropertyTags
tài sản là typeof ICollection<string>
. Những gì tôi đang cố gắng bên trong bộ điều khiển của tôi là như sau:
public ViewResult Tag(string tag) {
var _rawTag = HttpUtility.UrlDecode(tag);
ViewBag.Tag = _rawTag;
var model = _accommpropertyrepo.GetAllAccommPropertiesFullWebIgnoringApprovalStatus();
model = model.Where(
x => x.AccommPropertyTags.Any(
y => y == _rawTag
)
);
return View(model);
}
Bởi vì thực tế là tôi đang sử dụng Any
đó, Entity đang cố gắng để chuyển đổi sở hữu AccommPropertyTags
tôi để SQL và không thể vì nó không phải là một phần của schema bảng.
Tôi có thực sự bị kẹt ở đây hoặc có cách nào hay để đánh bại lỗi gây phiền nhiễu này không?