使用EntityFramework (EF) 给Combobox赋值时遇到问题的解决
一、创建一个Ado.net实体模型
二、根据实体模型创建上下文和实体映射
遇到的问题场景是:模型的属性“代码生成策略”如果是 使用“旧的 ObjectContext ”方式时,Linq默认返回的ObjectQuery可以直接赋值给combobox ,如果是使用的T4模板,则系统系统创建的上下文对象为DBContext Linq 返回的对象为DBquery,不可以直接赋值给combobox.
1、[旧的 ObjectContext 方式时的截图]
2、[DBcontext是的截图]
三、异常解决方法
增加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 }).
ToList();
CBox_User.DataSource = query ;
int recordCount = query.Count();
}
}
}
四、使用“代码生成策略”:T4模板时的源码
链接: https://pan.baidu.com/s/1eSw9W8U 密码: 5sb7
打赏支付宝: