【发布时间】:2013-08-07 14:13:35
【问题描述】:
先说吧,我的英语不是很好。所以我很抱歉。 :)
我的问题作为标题。我的数据库中有两个表:
- Siniflar(SinifId、SinifAdi、Kapasite、OgretmenId)
- Ogretmenler(OgretmenId、Ad、Soyad、Brans)
查询:
var siniflar = (from s in db.Siniflar
join o in db.Ogretmenler
on s.OgretmenId equals o.OgretmenId
select new { s.SinifId, s.SinifAdi, s.Kapasite, o.Ad }).ToList();
我想将查询的结果用作泛型,如下所示:
public List<Siniflar> SiniflariListele()
{
var siniflar = (from s in db.Siniflar
join o in db.Ogretmenler
on s.OgretmenId equals o.OgretmenId
select new { s.SinifId, s.SinifAdi, s.Kapasite, o.Ad }).ToList();
return siniflar;
}
但是我得到一个错误。因为结果是匿名类型。
错误:无法将类型 System.Collections.Generic.List<AnonymousType#1> 隐式转换为 System.Collections.Generic.List<Entity.Siniflar>
如何使用通用结果。我可以为此做些什么?
我改变了问题:
类:
public class RSiniflar
{
public int SinifId { get; set; }
public string SinifAdi { get; set; }
public int Kapasite { get; set; }
public string OgretmenAdiSoyadi { get; set; }
}
方法:
public List<RSiniflar> SiniflariListele()
{
List<RSiniflar> siniflar = (from s in db.Siniflar
join o in db.Ogretmenler
on s.OgretmenId equals o.OgretmenId
select new RSiniflar
{
SinifId = s.SinifId,
SinifAdi = s.SinifAdi,
Kapasite = s.Kapasite,
OgretmenAdiSoyadi = o.Ad + ' ' + o.Soyad
}).ToList();
return siniflar;
}
但现在查询错误:无法创建类型为“System.Object”的常量值。此上下文仅支持原始类型或枚举类型。
我认为,我的查询有问题...我在查询 var 类型时遇到同样的错误...
【问题讨论】:
-
我相信
Siniflar实体没有Ad属性。你打算怎么退货? -
你需要一个 RSiniflar 上的默认构造函数
标签: linq entity-framework generics linq-to-entities entity