Entity Framework 中的in操作实例

  var listimportDataEOIResoults = importDataEOIResoults.Select(i => i.ProductSelectionId).ToList();
            var productSelections =
                _efWorker.ProductSelectionRepository.FindAll(
                    filter: ps => listimportDataEOIResoults.Contains(ps.Id));

需要注意的是不能这样写:

 var productSelections =
                _efWorker.ProductSelectionRepository.FindAll(
                    filter: ps => importDataEOIResoults.Select(i => i.ProductSelectionId).ToList().Contains(ps.Id));

需要先提取出具体的list才能在EF中使用Contains(也就是In操作)

时间: 2024-07-28 17:43:10

Entity Framework 中的in操作实例的相关文章

C# Entity Framework中的IQueryable和IQueryProvider详解

前言 相信大家对 Entity Framework 一定不陌生,我相信其中Linq To Sql是其最大的亮点之一,但是我们一直使用到现在却不曾明白内部是如何实现的,今天我们就简单的介绍IQueryable和IQueryProvider. IQueryable接口 我们先聊聊这个接口,因为我们在使用EF中经常看到linq to sql语句的返回类型是 IQueryable ,我们可以看下这个接口的结构: 代码如下: public interface IQueryable : IEnumerabl

在Entity Framework中使用事务

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 继续为想使用Entity Framework的朋友在前面探路,分享的东西虽然技术含量不高,但都是经过实践检验的. 在Entity Framework中使用事务很简单,将操作放在TransactionScope中,并通过Complete()方法提

Entity Framework 教程——Entity Framework中的实体类型

Entity Framework中的实体类型 : 在之前的章节中我们介绍过从已有的数据库中创建EDM,它包含数据库中每个表所对应的实体.在EF 5.0/6.0中,存在POCO 实体和动态代理实体两种. POCO Entity (Plain Old CLR Object): POCO类是不依赖任何框架的类型,如同其他正常的一般类型,我们称之为"Plain Old CLR Objects"(这里不知道怎么翻译,普通的CLR对象?古老的CLR对象?大概意思就是没有什么特殊的对象吧). POC

在Entity Framework 中实现继承关系映射到数据库表

继承关系映射到数据库表中有多种方式: 第一种:TPH(table-per-hiaerachy) 每一层次一张表 (只有一张表) 仅使用名为父类的类型名的一张表,它包含了各个子类的所有属性信息,使用区分列(Disciriminator column)(通常内容为子类的类型名)来区分哪一行表示什么类型的数据. 第二种:TPT(Table-per-type) 每种类型都有一张表(父类及每个子类都有表) 父类.各子类各自都有一张表.父类的表中只有共同的数据,子类表中有子类特定的属性.TPT很像类的继承结

在Linq to sql 和 Entity framework 中使用lambda表达式实现left join

我们知道lambda表达式在Linq to sql 和 Entity framework 中使用join函数可以实现inner join,那么怎么才能在lambda表达式中实现left join呢?秘诀就是在join后面加上一个函数DefaultIfEmpty函数,实际上这个函数在linq中貌似也只有将inner join转换为left join的作用,示例如下 var joinResult = DB.Table1s.Join(DB.Table2s, a => a.id, b => b.id,

Entity Framework 中Decimal字段长度设置方法

在创建项目DbContext时,重写DbContext.OnModelCreating()方法:然后通过如下方法指定精度 1 protected override void OnModelCreating(DbModelBuilder modelBuilder) 2 { 3 modelBuilder.Entity<Product>().Property(product => product.Price).HasPrecision(18, 12); 4 } Entity Framework

解决Entity Framework中DateTime类型字段异常

今天把一个使用了Entity Framework的程序从MySql迁移到SqlServer时,发现运行时报了一个异常: System.Data.SqlClient.SqlException: 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值. 在网上查找了一下,具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServer的datetime有效范围是1753年1月1日到9999年12月31日,如果超出这个范

关于Entity Framework中的Attached报错的完美解决方案终极版

之前发表过一篇文章题为<关于Entity Framework中的Attached报错的完美解决方案>,那篇文章确实能解决单个实体在进行更新.删除时Attached的报错,注意我这里说的单个实体,指的是要更新或删除的实体不包含其它实体(比如导航属性就包含其它实体),也就是简单POCO对象:但如果不是呢?那么那篇文章里的方法在一定程度上不起作用了,仍会报错,我开始也想不明白,明明通过IsAttached函数判断要更新的实体并未Attached,但进行Attaching时但仍然报错说有相同Key,开

Entity Framework中对存储过程的返回值的处理

很早就开始注意到EF了,但一直没有机会用,换了工作后,第一个项目就使用EF6进行开发. 项目不是很大,EF完全可以胜任. 但是开发过程中,难免还是会遇到一些复杂的运算,需要频繁访问数据库. 此时,想到的比较简单的方式,就是使用存储过程,在存储过程中进行一定的运算,然后把运算的结果(一个查询结果)通过存储过程返回. 思路上完全没有问题,就直接建了一个存储过程,然后更新edmx.发现,更新后,EF中,生成的对这个存储过程的调用,返回结果却是“Int”??? 之前也有做过通过存储过程返回值,都是返回一