我正在尝试选择一个或多个这样的列,但我犯了错误。
List<Uye> allCustomer = new List<Uye>();
allCustomer = db.Uye
.Select(i => new Uye { Ad = i.Ad })
.ToList();
The entity or complex type 'tasarımDesenleriOdev1.Models.RepositoryPatern.Uye' cannot be constructed in a LINQ to Entities query.
这是我的Uye
表。
[Table("Uye")]
public partial class Uye : BaseEntity
{
public Uye()
{
Order = new HashSet<Order>();
}
[StringLength(50)]
public string Ad { get; set; }
[StringLength(50)]
public string Soyad { get; set; }
[StringLength(50)]
public string Email { get; set; }
[StringLength(50)]
public string KullaniciAdi { get; set; }
[StringLength(500)]
public string Foto { get; set; }
public int? YetkiId { get; set; }
[StringLength(50)]
public string Sifre { get; set; }
public string Adres { get; set; }
public virtual ICollection<Order> Order { get; set; }
public virtual Yetki Yetki { get; set; }
}
答案 0 :(得分:1)
您提供的例外信息......
实体或复杂类型 'tasarımDesenleriOdev1.Models.RepositoryPatern.Uye'不可能 在LINQ to Entities查询中构造。
...似乎反映了这样一个事实:您正在尝试构建复杂实体的新实例,或许您应该只选择没有新的或新的DTO类型而不是实体类型。
尝试类似......var allCustomer = db.Uye
.Select(i => new {
Ad = i.Ad,
Soyad = i.Soyad
})
.ToList();
答案 1 :(得分:1)
根据我的理解,如果您只想从对象中选择一列,您可以使用如下所示:
List<Uye> allCustomer = db.Uye.Select(i => i.Ad).ToList();
注意:强> 我希望在你的表Uye,Ad是专栏之一。如果是这样,那么上面的linq查询肯定会起作用
其他信息:http://www.dotnettricks.com/learn/linq/difference-between-select-and-selectmany-in-linq
请让我知道您的反馈或想法
由于 KARTHIK
答案 2 :(得分:0)
问题是您不需要手动构建Uye
个实例,EF会在您需要时为您提供帮助。在这种情况下,您似乎想要表Ad
中的所有Uye
列值。只要您的实体关系配置正确,下面的代码就可以正常工作:
allCustomers =
db.Uye
// notice we create an anonymous object. EF uses this to figure out
// exactly what you want selected in your sql SELECT field list, in
// this case it should end up with SELECT Ad from Uye...
.Select(uye => new { uye.Ad })
// force EF to generate an run the sql and materialize the results
.ToList();
如果您需要整个Uye对象列表,因为您需要所有列值,您可以这样做:
allCustomers = db.Uye.ToList();
如果您需要多个列,而不是整个对象,则可以向匿名选择添加更多列,如下所示:
allCustomers = db.Uye
.Select(uye => new { uye.Ad, uye.Property1, uye.Property2, ...})
.ToList()
答案 3 :(得分:-1)
尝试代码:
allCustomer = db.Uye
.Select(i => new Uye { Ad = i.Ad ,Soyad =i.Soyad })
.ToList();