首页 新闻 会员 周边 捐助

EF 里抽象字段的查询,报错LINQ to Entities 不支持指定的类型成员“Name”。只支持初始值设定项、实体成员

0
悬赏园豆:20 [已解决问题] 解决于 2015-05-21 11:15
在实体类里定义一个抽象字段。  如下代码。

  public abstract class BaseClass
    {
        public abstract string Name { get; }
    }

    public class A: BaseClass
    {
        public virtual string Name { get { return "hello"; } }
    }
    public class B : BaseClass
    {
        public virtual string Name { get { return "Word"; } }
    }

查询代码。
|DBContext.BaseClass.Where(o => o.Name.Contains("o")).ToList();

报错:LINQ to Entities 不支持指定的类型成员“Name”。只支持初始值设定项、实体成员和实体导航属性。
Qiozi的主页 Qiozi | 初学一级 | 园豆:184
提问于:2015-05-21 09:56
< >
分享
最佳答案
1

在EF映射中将Name忽略试试

收获园豆:20
dudu | 高人七级 |园豆:29732 | 2015-05-21 10:09
  //字段改为

      [NotMapped]
        public abstract string Name
        {
            get;
        }

问题依旧。。

 

Qiozi | 园豆:184 (初学一级) | 2015-05-21 10:34

@Qiozi: 现在的Name属性就相当于是一个get方法,LINQ to Entities是不支持的。

dudu | 园豆:29732 (高人七级) | 2015-05-21 10:39

@dudu: 也就是说, 只能取值,不能对这个字段进行查询?

Qiozi | 园豆:184 (初学一级) | 2015-05-21 11:01

@dudu: 理解你的意思了。 谢谢!

Qiozi | 园豆:184 (初学一级) | 2015-05-21 11:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册