LINQ TO SQL使用上的一部分问题

Insert()与InsertRange()在数据插入过程中的差异:

  Insert插入数据完成后,会返回自增的ID列的值;InsertRange插入完成数据后只会返回受影响的行数。

  结果就是使用Insert插入的数据,在插入完成后无须再次查询便有ID的值,使用InsertRange插入的数据则需要自行查询更新绑定的数据。

FirstOrDefault()在使用过程中会遇到的问题:

            var entity = ItemSource.FirstOrDefault(f => f.IsUse);
            if (entity == null || entity.Count() == 0)
            {
                return;
            }

  筛选之后立马判断数据是否为空的时候,此时entity为空,但是不会进入下面的方法,除非打上断点,有等待操作时,才会正常进入下面的判断方法。这是由于FirstOrDefault()这个方法本身引起的问题,这个筛选的过程不是同步的,而是异步的,在不等待的情况下会造成以上的情况,此时的解决方案应该是:

            var entity = ItemSource.Where(f => f.IsUse).FirstOrDefault();
            if (entity == null || entity.Count() == 0)
            {
                return;
            }

  

posted @ 2021-12-18 17:33  勤奋的二牛  阅读(40)  评论(0)    收藏  举报