Linq to Entities中无法构造实体或复杂类型

EF中在使用linq就行查询select时不能直接使用自动映射生成的类,需要在单独声明一个类或者使用匿名类在查询完成后再转为对应的对象。

 1   public partial class WebForm1 : System.Web.UI.Page
 2     {
 3         protected void Page_Load(object sender, EventArgs e)
 4         {
 5             using (aspnetdbEntities db = new aspnetdbEntities())
 6             {
 7                 //MyModel model = new MyModel()
 8                 //{
 9                 //    Name = "andy"
10                 //};
11                 //     db.MyModel.Add(model);
12              //   db.SaveChanges();
13                 var result = from a in db.MyModel
14                              select new  {id=a.Id, Name=a.Name };
15                 var result2 = from b in db.MyModel
16                               select new MyModel { Id = b.Id, Name = b.Name };
17                 var result3 = from c in db.MyModel
18                               select new TestModel { id = c.Id, Name = c.Name };
19                 var model = result.ToList().Select(a => new MyModel { Id=a.id,Name=a.Name});
20                 var model2 = result2.ToList().FirstOrDefault();
21                 var model3 = result3.ToList().FirstOrDefault();
22                 var model4 = db.MyModel.Select(a=>a).ToList().FirstOrDefault();
23             }
24
25         }
26     }
27     class TestModel
28     {
29         public int id { get; set; }
30         public string Name { get; set; }
31     }

时间: 2024-10-15 18:54:26

Linq to Entities中无法构造实体或复杂类型的相关文章

在 LINQ to Entities 查询中无法构造实体或复杂类型

在编写EF+Linq的过程中,可能会遇到"在 LINQ to Entities 查询中无法构造实体或复杂类型"的问题.解决方法:从原有类型中继承一个子类,然后创建子类实例下面是例子: private static void Main(string[] args) { Boolean s = false; using(Northwind dbo = new Northwind()) { IQueryable<Customers> query; if(s) { // 错误的写法

在 LINQ to Entities 查询中无法构造实体或复杂类型“Cits.Data.LineImg”。

错误代码: adlist = _sImg.Where(o => o.AdType == 11).OrderBy(o => o.Desc).OrderByDescending(o => o.Id).Select(i => new LineImg { Url = i.Url, ImgUrl = i.ImgUrl, Title = i.Title }).ToList(); 修正代码: adlist = _sImg.Where(o => o.AdType == 11).OrderBy

Linq To Entities中的动态排序

换了工作有一个月了,一样的工作.一样的代码.一样的体力活仍就-- Linq To Entityes 也是不新玩意了,近半年来也一直与之打交道,但一直也没对其深究过.今天新加的功能要对所有列支持排序,这也不是什么高难度的工作了,对与TSQL来说是写过几百遍了,但在Linq To Enitities中有点小恶心. Linq To Entityes中的对象是个Queryable类型的,Queryable.OrderBy()方法的参数是一个Lamdba source.OrderBy(t=>t.ID).S

LINQ to Entities不识别方法***,因此该方法无法转换为存储表达式

我的程序里有这么一段代码: order.OrderExpressInfo = (from oei in orderExpressRepository.Entities where oei.OrderId == order.OrderId select new EbcBuy.Bll.Orders.Models.OrderExpress { ContentInfo = oei.ContentInfo, CreatedTime = oei.CreatedTime, CreatedUserId = oe

LINQ中in的实现方法-LINQ To Entities如何实现查询 select * from tableA where id in (1,2,3,4)

如果用in是字符串类型无问题,可以直接这样用 var result = SNFService.Instance.ModuleService.GetList(UserInfo).Where(entity => entity.DeletionStateCode == 0 ).Where(entity => urls.Contains((entity.NavigateUrl == null ? "" : entity.NavigateUrl).ToLower())).OrderB

用LINQ在集合中查询特定对象

这里是原文出处: 简单的概括LINQ LINQ是Language-Integrated Query的缩写,是C# 3.0和VB 9.0中新加入的语言特性,可以在编程时使用内置的查询语言进行基于集合的操作. List<User> userList = GetUserList(); var userWithOddId = from u in userList where u.UserID % 2 == 1 select u; foreach (User u in userWithOddId) {

Entity Framework技术系列之7:LINQ to Entities

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 前言 LINQ(Language Integrated Query,语言集成查询)是一组用于C#和VB.NET语言的扩展,它允许编写C#或者VB.NET代码,以与查询数据库相同的方式操作内存数据.LINQ提Entity Framework技术系

LINQ(LINQ to Entities)

LINQ to Entities 是 LINQ 中最吸引人的部分.它让你可以使用标准的 C# 对象与数据库的结构和数据打交道.使用 LINQ to Entities 时,LINQ 查询在后台转换为 SQL 查询并在需要数据的时候执行,即开始枚举结果的时候执行.LINQ to Entities 还为你获取的所有数据提供变化追踪,也就是说,可以修改查询获得的对象,然后整批同时把更新提交到数据库. LINQ to Entities 是 Entity Framework 的一部分并且取代 LINQ to

LINQ to Entities 查询注意事项

1> 排序信息丢失 如果在排序操作之后执行了任何其他操作,则不能保证这些附加操作中会保留排序结果.这些操作包括 Select 和 Where 等.另外,采用表达式作为输入参数的 First 和 FirstOrDefault 方法不保留顺序.如下代码:并不能达到反序排序的效果 using (var edm = new NorthwindEntities()) { IQueryable<Customers> cc = edm.Customers.OrderByDescending(c =&g