如何解决EF6 如何获取 DevExpress Lookup 的数据编辑
我的表格结构如下:
CREATE TABLE employee
(
employeeid integer NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,familyname varchar(100) NOT NULL,givenname varchar(100) NOT NULL,position varchar(100) NOT NULL,startdate date,address varchar(250),address2 varchar(250),city varchar(100),provincecd character(2),countrycd character(2),postalcode character varying(15),enddate date,employmentstatusid integer,photo bytea,dob date,);
该表和其他几个表被配置到一个 C# EF6 项目中。
我有一个 VB.Net WinForms 项目,它使用 EF6 实体作为数据存储。
我正在使用一个 DevExpress XtraGrid 控件,我用它来交互式地填充我的数据库。问题出现在我需要向 DevExpress LookupEdit 控件提供数据的地方,我在其中使用员工实体中的数据子集来填充 LookupEdit。我要使用的数据可以用下面的SQL查询表示:
SELECT
employeeid,concat(familyname,',givenname) as fullname
FROM
employee
WHERE
employmentstatusid in (1,2)
ORDER BY
familyname,givenname
我不确定如何使用 EF6 获取数据以填充我的 LookupEdit。
我是 EF 的新手,但我已经使用 ADO.Net DataSets 多年。
解决方法
您使用 LINQ to Entities 查询 EF DbContext
。在您的情况下,它将是这样的:
Dim employeeNamesById = myDbContext.employees.
Where(Function(e) {1,2}.Contains(e.employeestatusid)).
OrderBy(Function(e) e.familyname).
ThenBy(Function(e) e.givenname).
Select(Function(e) New With
{
e.employeeid,.fullname = e.familyname & "," & e.givenname
}).
ToList()
这将创建一个匿名类型的对象的泛型 List
。您可能更喜欢定义一个具有适当属性的类并创建它的实例。此外,该代码使用函数语法,这通常是我的偏好。如果您愿意,可以使用查询语法,但如果您愿意,我会将其留给您。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。