Utknąłem gdzieś w mojej aplikacji ASP.NET MVC 3. tu jest błąd otrzymuję:Obsługiwane są tylko inicjalizatory, elementy encji i właściwości nawigacji jednostki. (ASP.NET MVC i Entity Framework)
Podany członkiem typu „AccommPropertyTags” nie jest obsługiwany w LINQ do podmiotów. Obsługiwane są tylko opcje inicjalizujące, elementy encji i obiekt .
znalazłem w jaki sposób możemy rozwiązać to w poniższym artykule:
Only initializers, entity members, and entity navigation properties are supported
Ale mój jest trochę dziwne.
Oto jeden z częściowej klasy mojego jednostki:
[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; }
}
}
Jak widać powyżej, AccommPropertyTags
nieruchomość jest typeof ICollection<string>
. Co staram się wewnątrz mojego kontrolera jest następująca:
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);
}
Ze względu na fakt, że używam Any
tam, Entity próbuje przekonwertować AccommPropertyTags
właściwość SQL i nie mogę, ponieważ nie jest częścią schematu tabeli.
Naprawdę utknąłem tutaj czy jest jakiś fajny sposób na pokonanie tego denerwującego błędu?