实体框架从数据库-计算属性从另一个表
本文关键字:属性 另一个 计算 框架 数据库 实体 | 更新日期: 2023-09-27 18:07:45
在我的数据库中,我有表Person
和Work
,它们与一个Person
连接到许多具有外键PersonId
的Work
。
这些是表格:
CREATE TABLE [dbo].[Work]
(
[WorkId] [int] IDENTITY(1,1) NOT NULL,
[PersonId] [int] NOT NULL,
[KollelStatusId] [tinyint] NOT NULL,
[Job] [nvarchar](50) NULL,
[Mascoret] [int] NULL,
CONSTRAINT [PK_Work]
PRIMARY KEY CLUSTERED ([WorkId] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[Work] WITH CHECK
ADD CONSTRAINT [FK_Work_Person]
FOREIGN KEY([PersonId]) REFERENCES [dbo].[Person] ([PersonId])
CREATE TABLE [dbo].[Person]
(
[PersonId] [int] IDENTITY(1,1) NOT NULL,
[FamilyId] [int] NULL,
[FirstName] [nvarchar](50) NOT NULL,
[LastName] [nvarchar](50) NULL,
[DateOfBirth] [smalldatetime] NOT NULL,
[TeudatZehut] [varchar](9) NULL,
[Phone] [varchar](15) NULL,
[Email] [varchar](100) NULL,
[Issue] [nvarchar](2000) NULL,
CONSTRAINT [PK_KupaPerson]
PRIMARY KEY CLUSTERED ([PersonId] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF,
IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
我需要在ASP中显示人员。. NET MVC视图。但不是PersonId
,我想显示Job
字符串。
如何从数据库生成的实体框架?
谢谢?
如果你在value _personId中获得了personId你可以这样做:
var listOfJobs = db.Work.Where(a=>a.PersonId == _personId).Select(a=>a.Job).ToList();
这将返回该人员链接到的工作列表。
如果你只从person模型中得到名字或任何其他值,你可以这样做:
var listOfJobs = db.Work.Where(a=>a.Person.LastName == _lastName).Select(a=>a.Job).ToList();
这将返回所有LastName等于_lastName值的人的工作列表。
如果你想从两个表中获取值,你可以JOIN两个实体:
var listOfObjects = from w in db.Work
join p in db.Person on p.PersonId equals w.PersonId
where w.PersonId == _personId
select w.Job, p.FirstName;
如果您想从数据库中获取所有person的工作,只需从上面删除where语句,如:
var listOfObjects = from w in db.Work
join p in db.Person on p.PersonId equals w.PersonId
select w.Job, p.FirstName;
这将生成一个查询来获取所有人的作业。
如果您需要从模型中获得更多的值,只需扩展select语句,添加更多的值,如:
select w.Job, p.FirstName, p.LastName, w.WorkId, w.Mascoret