我想創建視圖的參照完整性。我知道它不可能在數據庫中,但使用EF我正在尋找一種方法來實現這一點。實體框架和視圖
現狀是這樣的:
視圖(vSkillMatch
)具有三列:作業ID,matchingskillid,candidateid。
這些分別來自JobDescription
,SkillInfo
& Candidate
表。
從我的網頁API我想返回以下字段:
JOBTITLE,joblocation,candidatename,移動電話號碼,matchingskillName
這些領域均是其各自的表中找到。
目前我做這樣的:
網頁API方法
public List<CandidateBySkillDTO> getCandidate()
{
var SkillMatches = db.vSkillMatches;
List<CandidateBySkillDTO> cbsDTO = new List<CandidateBySkillDTO>();
foreach (vSkillMatch Match in SkillMatches)
{
CandidateSkillDTO CandidateSkillInfo = new CandidateSkillDTO(Match.CandidateId, Match.SkillId);
CandidateBySkillDTO candidateList = new CandidateBySkillDTO();
candidateList.candidateId = CandidateSkillInfo.candidateInfo.Id;
candidateList.candidateMobile = CandidateSkillInfo.candidateInfo.PrimaryMobile;
candidateList.SkillName = CandidateSkillInfo.skillInfo.SkillName;
cbsDTO.Add(candidateList);
}
return cbsDTO;
}
CandidateBySkillDTO模型類
public class CandidateBySkillDTO
{
public int candidateId { get; set; }
public string candidateName { get; set; }
public long candidateMobile { get; set; }
public string createdBy { get; set; }
public string SkillName { get; set; }
public int skillId { get; set; }
public string jobTitle { get; set; }
public string jobCreated { get; set; }
}
CandidateSkillDTO模型類
public class CandidateSkillDTO
{
ubietydbEntities db = new ubietydbEntities();
public int candidateId;
public int skillId;
public CandidateSkillDTO(int CandidateId, int SkillId)
{
this.candidateId = CandidateId;
this.skillId = SkillId;
}
public Candidate candidateInfo
{
get
{
return db.Candidates.Find(this.candidateId);
}
set
{
}
}
public Skill skillInfo
{
get
{
return db.Skills.Find(this.skillId);
}
set
{
}
}
}
我覺得我的要求對我的項目來說並不是很大。這是完成這項任務的唯一方法,還是我錯過了EF的一個主要功能來做到這一點?
謝謝。
代碼優先/ DB-第一? –
db-first已加入 –
您可以在edmx設計器 –