【发布时间】:2016-10-24 10:50:38
【问题描述】:
我正在尝试使用 linq 获取数据列表,但出现此错误。
我的问题是:
我有一个Hospital 模型。该模型由城市代码组成。所有城市代码都是十进制类型。(1,2,3,4,..等)
我还有一个与TcKimlik 属性相关的Person 和PersonStatu models.Person 和PersonStatu。而Hospital 与PersonStatu 的HospitalCode 属性相关的模型。
所以当我尝试通过城市代码去医院时,如果城市代码大于 10 则可以。但是当它小于 10 时,它无法返回任何数据。并且出现此错误:
Unable to create a constant value of type 'Domain.DataModel.Hospital'. Only primitive types or enumeration types are supported in this context.
这是我的Hospital 模特:
[Table("SPTS.HOSPITALS")]
public partial class Hospital
{
....
public decimal? IL_KODU { get; set; }
....
}
这是我的 Querable LINQ 查询:
var hospitals = context.Hospitals.Where(p=>p.IL_KODU==1);
var persons = (from c in context.Persons
join x in context.PersonStatus on c.TcKimlik equals x.Tckn
join h in hospitals on x.HospitalCode equals h.KURUM_KODU
where x.Statu == true
select new DataViewModel
{
Id = c.Id,
TcKimlik = c.TcKimlik,
Uyruk = c.Uyruk,
Ad = c.Ad,
Soyad = c.Soyad,
Cinsiyet = c.Cinsiyet,
DogumTarihi = c.DogumTarihi,
KurumStatu = h.PAYDAS,
KurumKodu = h.KURUM_KODU,
KurumAdi = h.KURUM_ADI,
BranchName = c.Brans.BranchName,
AcademicTitleName = c.AkademikUnvan.Title,
ManagerialTitleName = c.IdariUnvan.Title,
StaffStatuName = c.Durum.Statu,
BranchTypeName = c.Unvan.Type,
ServiceClassName = c.Unvan.ServiceClass.Name,
City = h.KURUM_ILI,
CityCode = h.IL_KODU,
CityTownName = h.KURUM_ILCESI
}).AsQueryable();
那么我该怎么做才能解决这个问题呢?
任何帮助将不胜感激。
谢谢。
【问题讨论】:
标签: c# asp.net-mvc linq