使用EntityFramework (EF) 给Combobox赋值时遇到问题的解决

一、创建一个Ado.net实体模型

image

二、根据实体模型创建上下文和实体映射

遇到的问题场景是:模型的属性“代码生成策略”如果是 使用“旧的 ObjectContext ”方式时,Linq默认返回的ObjectQuery可以直接赋值给combobox ,如果是使用的T4模板,则系统系统创建的上下文对象为DBContext Linq 返回的对象为DBquery,不可以直接赋值给combobox.

1、[旧的 ObjectContext 方式时的截图]

image

2、[DBcontext是的截图]

image

三、异常解决方法

增加toList()方法解决

        private void button4_Click(object sender, EventArgs e)
        {

            using (Model1Container db = new Model1Container())
            {
                using (Model1Container db1 = new Model1Container())
                {
                    CBox_User.DisplayMember = "Name";
                    CBox_User.ValueMember = "Id";
                    var query =( from u in db1.Entity1Set
                                orderby u.LastName
                                select new { Name = u.LastName + ", " + u.FirstName, Id = u.FirstName }).
                    CBox_User.DataSource = query ;
                    int recordCount = query.Count();
                }
            }
        }

四、使用“代码生成策略”:T4模板时的源码

链接: https://pan.baidu.com/s/1eSw9W8U 密码: 5sb7

打赏支付宝:

QQ20171114152709_thumb

转载于:https://www.cnblogs.com/taotaozujinet/p/7838400.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值