Я хочу создать ссылочную целостность для представлений. Я знаю, что это невозможно в базе данных, но с использованием EF я ищу способ достичь этого.Entity Framework & Views
Ситуация похожа на следующее:
вид (vSkillMatch
) имеет три колонки: JobId, matchingskillid, candidateid.
Данные составлены от JobDescription
, SkillInfo
& Candidate
столов соответственно.
от моего веб-апи Я хочу вернуть следующие поля:
jobtitle, joblocation, candidatename, MobileNumber, matchingskillName
эти поля доступны в соответствующих таблицах.
В настоящее время я делаю так:
метод веб-апи
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 для этого?
Спасибо.
Code-первых/дб-первых? –
db-first aplied –
В edmx-дизайнере –