首页 新闻 会员 周边 捐助

linq to entities 不支持指定的类型成员

0
悬赏园豆:50 [已解决问题] 解决于 2013-11-22 16:53

项目用到linq entityframework,在测试VS中正常,但是整合到其他项目中的时候,凡是查询数据的地方全都弹出“linq to entities 不支持指定的类型成员”的提示。在线急等!

 

一羽赐命的主页 一羽赐命 | 初学一级 | 园豆:11
提问于:2013-11-07 17:48
< >
分享
最佳答案
-1

至少应该贴点代码啊~~

收获园豆:20
幻天芒 | 高人七级 |园豆:37205 | 2013-11-07 20:56

一羽赐命 | 园豆:11 (初学一级) | 2013-11-08 08:29

整合项目是不支持.net 4.0的 ,但是EF自动生成的特性里有4.0的参数,有没有可能是这个原因?

一羽赐命 | 园豆:11 (初学一级) | 2013-11-08 08:30

@一羽赐命: 这个4.0应该是EF的版本,而不是Net Framework的版本吧。贴下你的查询语句呢?

幻天芒 | 园豆:37205 (高人七级) | 2013-11-08 09:26

@幻天芒: 

var q = from m in BLLFactory.memberDetailsBLL.LoadEntities(u => true)
select new
{
m.office,
};

一羽赐命 | 园豆:11 (初学一级) | 2013-11-08 09:44

@一羽赐命: 你这个office的数据类型是啥?

幻天芒 | 园豆:37205 (高人七级) | 2013-11-08 10:09

@幻天芒: string类型,不是类型原因,bool类型都会报错。凡是访问数据库的地方都会报这样的错误

linq to entities 不支持指定的类型成员“XX”

一羽赐命 | 园豆:11 (初学一级) | 2013-11-08 10:16

@一羽赐命:

你修改为BLLFactory.memberDetailsBLL.Select(x=>x.office).ToList()试下。

幻天芒 | 园豆:37205 (高人七级) | 2013-11-08 11:28
其他回答(5)
0

确定EF对象上下文Context 有把整合后的对象都添加进去了,另外最好贴出代码抛异常的信息

收获园豆:10
Zery | 园豆:6151 (大侠五级) | 2013-11-07 17:52

System.NotSupportedException: LINQ to Entities 不支持指定的类型成员“office”。只支持初始值设定项、实体成员和实体导航属性。
在 System.Data.Objects.ELinq.ExpressionConverter.MemberAccessTranslator.TypedTranslate(ExpressionConverter parent, MemberExpression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TypedTranslator`1.Translate(ExpressionConverter parent, Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.NewTranslator.TypedTranslate(ExpressionConverter parent, NewExpression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TypedTranslator`1.Translate(ExpressionConverter parent, Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TranslateLambda(LambdaExpression lambda, DbExpression input)
在 System.Data.Objects.ELinq.ExpressionConverter.TranslateLambda(LambdaExpression lambda, DbExpression input, DbExpressionBinding& binding)
在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.OneLambdaTranslator.Translate(ExpressionConverter parent, MethodCallExpression call, DbExpression& source, DbExpressionBinding& sourceBinding, DbExpression& lambda)
在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.SelectTranslator.Translate(ExpressionConverter parent, MethodCallExpression call)
在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.SequenceMethodTranslator.Translate(ExpressionConverter parent, MethodCallExpression call, SequenceMethod sequenceMethod)
在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.TypedTranslate(ExpressionConverter parent, MethodCallExpression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TypedTranslator`1.Translate(ExpressionConverter parent, Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.UnarySequenceMethodTranslator.Translate(ExpressionConverter parent, MethodCallExpression call)
在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.SequenceMethodTranslator.Translate(ExpressionConverter parent, MethodCallExpression call, SequenceMethod sequenceMethod)
在 System.Data.Objects.ELinq.ExpressionConverter.MethodCallTranslator.TypedTranslate(ExpressionConverter parent, MethodCallExpression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TypedTranslator`1.Translate(ExpressionConverter parent, Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.TranslateExpression(Expression linq)
在 System.Data.Objects.ELinq.ExpressionConverter.Convert()
在 System.Data.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable`1 forMergeOption)
在 System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
在 System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
在 Union.UI.FrmAdmin.tbInformation_Selected(Object sender, TabControlEventArgs e)
在 System.Windows.Forms.TabControl.OnSelected(TabControlEventArgs e)
在 System.Windows.Forms.TabControl.WmSelChange()
在 System.Windows.Forms.TabControl.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

支持(0) 反对(0) 一羽赐命 | 园豆:11 (初学一级) | 2013-11-07 18:08

@一羽赐命: 

我觉得是你把项目整合后,没有把所有实体整合到一个EF Context中所以 用Context在查询并不能识别这些新的实体

支持(0) 反对(0) Zery | 园豆:6151 (大侠五级) | 2013-11-07 20:32
0

看你的实体是否在上下文(Context)中,你测试项目和整合项目有啥不一样总看得出来吧

收获园豆:10
*^__^* | 园豆:428 (菜鸟二级) | 2013-11-07 19:26

反编译看了下,测试项目的dll都在整合项目里了。

支持(0) 反对(0) 一羽赐命 | 园豆:11 (初学一级) | 2013-11-08 08:22
0

首先 删除所有的报错的 entityframework.dll的引用

然后 package Manager Console

运行 install-package entityframework -version (版本号)

最后在看 是否引用了 相关dll的 model层的dll

收获园豆:10
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-11-08 14:43
0

是json.版本问题  4.X的 可以用  我升级成6.X 就报这个错

晓风.NET | 园豆:204 (菜鸟二级) | 2015-04-10 01:09
0

楼主,你这个问题最后是怎么解决的呢?

jaywan222 | 园豆:202 (菜鸟二级) | 2015-07-09 09:27

没有解决.

 

支持(0) 反对(0) 一羽赐命 | 园豆:11 (初学一级) | 2015-07-09 09:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册