1. 程式人生 > >指定類型的成員XX”不支持實體LINQ。只有初始化,成員單位,和實體導航性能的支持。

指定類型的成員XX”不支持實體LINQ。只有初始化,成員單位,和實體導航性能的支持。

where 創建 pos var != sql 支持 bre spec

The specified type member ‘DeleteFlag‘ is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.

出現這個問題的原因是因為在linq中兩個連接表創建的實體類需要吧其中的映射字段每一個都查出來,不然就會報這個錯誤,錯誤的寫法如下

                var querySql = from t in _observationResultRepository.Table
                               join r 
in _observationRequestRepository.Table on t.ObservationUID equals r.ObservationUID select new RelatedLabResultInfo { ValueText=t.ValueText, ResultDate
=r.ResultDate }; if (query.ClinicInfoType != null) { querySql = querySql.Where(u => u.ClinicInfoType == query.ClinicInfoType.Value.ToString()); }

這其中,tostringEF 不支持,需要寫個中間變量賦值然後再放在EF中,

正確的寫法:

                var
querySql = from t in _observationResultRepository.Table join r in _observationRequestRepository.Table on t.ObservationUID equals r.ObservationUID select new RelatedLabResultInfo { ValueText=t.ValueText, ResultDate=r.ResultDate, ClinicInfoType=r.ClinicInfoType }; if (query.ClinicInfoType != null) { ClinicInfoType = query.ClinicInfoType.Value.ToString(); } if (query.ClinicInfoType != null) { querySql = querySql.Where(u => u.ClinicInfoType == ClinicInfoType); }

指定類型的成員XX”不支持實體LINQ。只有初始化,成員單位,和實體導航性能的支持。