我嘗試使用實體框架構建簡單的Web Api。我從我的數據庫的表中獲取所有行,並將所有數據顯示爲JSON對象。但是我有一個關於獲取某些列的值的問題,它與另一個表有關係。此問題導致獲取空的JSON對象。下面是我的代碼獲得方法Web API獲取方法在JSON中返回空
public class ProjeOzet_Repository
{
private MGEOPROJETAKIPT_TEntities db = new MGEOPROJETAKIPT_TEntities();
public IQueryable<ProjeOzet> GetProjeOzets()
{
var projeOzet = from p in db.PROJE_OZET
join pt in db.PO_PROJE_TURU on p.PROJE_TURU equals pt.ID
join dir in db.PO_DIREKTORLUK on p.P_YURUTEN_D equals dir.ID
join gb in db.PO_GRUP_B on p.P_YURUTEN_GB equals gb.ID
join mud in db.PO_MUDURLUK on p.P_YURUTEN_M equals mud.ID
join yon in db.Z_Personel_MGEO_BAK on (int)p.P_YONETICISI_SNO equals yon.SNO
join kat in db.PO_KATEGORI on p.P_KATEGORI equals kat.ID
join f in db.PO_FAZ on p.P_FAZ equals f.ID
select new ProjeOzet()
{
Id = p.PROJE_ID,
gizli = p.GIZLI,
raporlanacak = p.RAPORLANACAK,
projeNo = p.PROJE_NO_MGEO,
projeTanim = p.P_TANIM_MGEO,
projeGBId = p.P_YURUTEN_GB,
projeDirektorlukId = p.P_YURUTEN_D,
projeMudurlukId = p.P_YURUTEN_M,
projeTuru = pt.UZUN_AD,
projeTuruId = p.PROJE_TURU,
projeDirektorluk = dir.AD,
projeGB = gb.AD,
projeMudurluk = mud.AD,
yonetici = yon.AD + " " + yon.SOYAD,
sektorIci = p.SI_SA,
anaYukleniciSektor = p.ANA_YUKLENICI_S,
altYukleniciSektor = p.ALT_YUKLENICI_S, //Bu kısım arayüzde eşleştirilecek
projeKisaTanim = p.PROJE_KISA_TANIMI,
sozlesmeBaslangicTarihi = p.SOZLESME_BASLANGIC_TARIHI,
sozlesmeBitisGH = p.SOZLESME_BITIS_TARIHI_GH,
sozlesmeBitisGD = p.SOZLESME_BITIS_TARIHI_GD,
sozlesmeImzaTarihi = p.SOZLESME_IMZA_TARIHI,
aliciKurum = p.ALICI_KURUM,
ihtiyacSahibiKurum = p.IHTIYAC_SAHIBI_KURUM,
anaYukleniciKurum = p.ANA_YUKLENICI_KURUM,
kategori = kat.Aciklama,
faz = f.Aciklama,
ur_sp = p.UR_SP,
ekleyen = p.Ekleyen
};
return projeOzet;
}
}
我的控制器的對象是;
public class ProjeOzetController : ApiController
{
private ProjeOzet_Repository projeOzetRepository;
public ProjeOzetController()
{
this.projeOzetRepository = new ProjeOzet_Repository();
}
public IQueryable<ProjeOzet> Get()
{
return projeOzetRepository.GetProjeOzets();
}
}
我的對象模型是;
public class ProjeOzet
{
public int Id { get; set; }
public bool gizli { get; set; }
public bool raporlanacak { get; set; }
public string projeNo { get; set; }
public string projeTanim { get; set; }
public string projeTuru { get; set; }
public int? projeTuruId { get; set; }
public int? projeGBId { get; set; }
public int? projeDirektorlukId { get; set; }
public int? projeMudurlukId { get; set; }
public string projeGB { get; set; }
public string projeDirektorluk { get; set; }
public string projeMudurluk { get; set; }
public string yonetici { get; set; }
public int? sektorIci { get; set; }
public int? anaYukleniciSektor { get; set; }
public string altYukleniciSektor { get; set; }
public string projeKisaTanim { get; set; }
public DateTime? sozlesmeImzaTarihi { get; set; }
public DateTime? sozlesmeBaslangicTarihi { get; set; }
public DateTime? sozlesmeBitisGH { get; set; }
public DateTime? sozlesmeBitisGD { get; set; }
public string aliciKurum { get; set; }
public string ihtiyacSahibiKurum { get; set; }
public string anaYukleniciKurum { get; set; }
public string kategori { get; set; }
public string faz { get; set; }
public int? ur_sp { get; set; }
public int? ekleyen { get; set; }
}
例如,kategori
變量有一些問題。我有另一個表綁定到這個變量,並有兩列; ID(int)和說明(nvarchar)。我將kategori
的ID值保存到我的主表(它位於PROJE_OZET的P_KATEGORI列下且可爲空)。我想顯示Explanation
這是有限的ID。對於我的主表(PROJE_OZET)中的一行,如果P_KATEGORI有一個值,則沒有問題。但是,如果此列爲該行的null
,那麼當我調用GET方法時,我會得到一個空的JSON對象,儘管其他列有值。
我該如何解決這個問題?
利用這個,看看有什麼是你的SQL https://hibernatingrhinos.com/products/EFProf – LiverpoolOwen
是否'projeOzetRepository.GetProjeOzets()'實際上返回任何問題?請使用調試進行檢查。另外,我沒有看到'[HttpGet]'屬性超出你的行爲。 – Andrei
我也會'返回projeOzet.ToList();'只是爲了安全一邊 –