我被困在我的ASP.NET MVC 3应用程序的某个地方。这里是我得到的错误:仅支持初始化程序,实体成员和实体导航属性。 (ASP.NET MVC和实体框架)
指定的类型成员“AccommPropertyTags”不 支持LINQ到实体。仅支持初始化程序,实体成员和实体 导航属性。
我发现我们怎么可以在下面的文章解决这个问题:
Only initializers, entity members, and entity navigation properties are supported
但是我的是一个有点古怪。
下面是部分类我的实体之一:
[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; }
}
}
正如你可以在上面看到,AccommPropertyTags
属性的typeof ICollection<string>
。什么我正控制器内部如下:
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);
}
因为事实上,我现在用Any
存在,实体试图我AccommPropertyTags
财产转换为SQL并且不能因为它不是表模式的一部分。
我真的陷入这里,还是有一种很酷的方式来击败这个恼人的错误?