Dblinq Linq To Mysql 问题

本文记录了在使用Linq to MySQL进行数据查询时遇到的一个问题:无法直接对查询结果集使用Count()方法来获取数量,尝试直接实例化对象会抛出MemberInit异常。文中通过对比Linq to SQL说明了这一差异,并给出了一种可行的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


今天调试Linq to Mysql遇到问题,查遍谷歌,找不到相关资料,很是郁闷:
记录于此,日后再次折腾!

无法获取查询集合的 数量:总是抛出MemberInit异常!


发现,与Linq to Sql 不同,实例化对象后,竟然不能使用Count()
var result = from ai in sc.ClCaRTicLEItem
					//     join au in sc.ClCaRTicLEUser
					//on ai.GeneralID equals au.GeneralID into a
					//     from au in a.DefaultIfEmpty()
						 //orderby ai.UpdatedTime descending
						 select new ArticleItemInfo()
						 {
							 GeneralId = ai.GeneralID,
							 CatcherItemId = ai.ItemID,
							 //OrignalUrl = ai.OrignalUrl,
							 //Status = (CommonStatus)(ai.Status ?? -2),
							 //CreatedTime = ai.CreatedTime ?? DateTime.Now,
							 //UpdatedTime = ai.UpdatedTime ?? DateTime.Now,
							 //Title = ai.Title,
							 //Content = ai.Content,
							 ////AssignedUser = new UserInfo()
							 ////{
							 ////    Id = au.UserID ?? -1,
							 ////    Name = au.UserName ?? string.Empty
							 ////},
							 //Remark = au.Remark
						 };

			var result2 = from ai in sc.ClCaRTicLEItem select ai;

			int count2 = result2.Count();

			Console.WriteLine("==========Count :" + count2);
如上 result.Count()的话 就会抛出异常,result2可以顺利执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值