Estoy atrapado en algún lugar de mi aplicación ASP.NET MVC 3. Aquí está el error que estoy recibiendo:Solo se admiten inicializadores, miembros de entidades y propiedades de navegación de entidades. (ASP.NET MVC y Entity Framework)
El miembro tipo especificado 'AccommPropertyTags' no se admite en LINQ a Entidades. Solo se admiten las propiedades de navegación de inicializadores, miembros de entidad y entidad .
he encontrado cómo podemos resolver esto en el artículo siguiente:
Only initializers, entity members, and entity navigation properties are supported
Pero la mía es un poco extraño.
Aquí es uno de la clase parcial de mi entidad:
[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; }
}
}
Como se puede ver arriba, AccommPropertyTags
propiedad es typeof ICollection<string>
. Lo que trato en mi controlador es el siguiente:
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);
}
Debido al hecho de que estoy usando Any
allí, Entidad está tratando de convertir mi propiedad AccommPropertyTags
a SQL y no puede porque no es parte del esquema de la tabla.
¿Realmente estoy atrapado aquí o hay una forma genial de superar este molesto error?