【发布时间】:2016-02-14 18:43:41
【问题描述】:
我正在开发一个使用 EF Code First 模块的具有三层架构的应用程序。
- UI 层 (UI)
- 业务逻辑层 (BLL)
- 数据访问层 (DAL)
我使用 LINQ 从 DAL 中的数据库中检索数据并将其传递给 BLL 并从 BLL 传递给 UI
例如
在 DAL 中
public object ReadUsers()
{
var users = db.Users.Select(u => new { u.UserName, u.IsDisable, u.FullName, u.Descriprion }).ToList();
return users;
}
在 BLL 中
public object ReadUsers()
{
return _userDAL.ReadUsers();
}
在 UI 中 - 将用户列表分配给 ListView
var users = _userBLL.ReadUsers();
users.ToList()
.ForEach(x => lvUserRoleGroup.Items.Add(
new ListViewItem(
new string[] { x.UserName, x.IsDisable.ToString(), x.FullName, x.Descriprion }))
);
但它抛出一个错误
错误 1“object”不包含“ToList”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“ToList”(您是否缺少 using 指令或程序集引用?)
谁能告诉我如何在ListView 中显示输出?它与DataGridView 一起工作正常,如下所示 -
var users = _userBLL.ReadUsers();
dataGridView1.DataSource = users;
【问题讨论】:
-
为什么不创建
Type用户并返回该类型的通用集合而不是传递对象?你的错误是在`users.ToList()`行cz你不能在一个对象上调用ToList()。
标签: c# .net winforms entity-framework linq